Tags: ByteAether/Ulid
Tags
Optimize `ToString()` performance via JIT bounds-check elimination an… …d update documentation (#38) * Improve ToString() performance by hinting JIT to not do bounds-checking later * Update benchmark results in README.md with latest performance data. Add `AsByteSpan()` benchmark along with `ToByteArray()` benchmarks. * Refine README: Add ULID vs UUIDv7 heading, badge for .NET AOT readiness, and lock-free synchronization details. Update PACKAGE.md as necessary.
Small source code optimizations. Clarified ULID advantages in `README… ….md`. (#35) * Refactored ULID string formatting logic to remove redundant checks and improve overall performance. Added additional test for Unix timestamp and random input validation. * Removed "readonly" marker from methods where it is not necessary. * Updated README to clarify ULID advantages over GUIDs, highlight strict monotonicity, and address limitations in UUIDv7 implementations.
Performance improvements on new Ulid generation and `Parse()`/`ToStri… …ng()` (#29) * Improved timestamp handling in `Ulid.New` implementation, and added test for timestamp and random validation. Rewrote ULID generation methods to use refs instead of Spans for performance. * Refactor ULID parsing/encoding to use Unsafe.As/Add for direct memory access, improving performance and eliminating bounds checks. * Updated benchmark results in README.
.NET 10 support (#23) * Add .NET 10.0 support across projects, actions, and documentation; minor adjustments in README and validations. * Enable manual workflow dispatch in build-and-test GitHub Action. * Update README and dependencies for latest benchmarks
Refactored `FillTime` for simplicity and performance, improved `FillR… …andom` performance, and replaced `lock` with spinlock. (#18) * Enhanced performance via `[MethodImpl(MethodImplOptions.AggressiveOptimization)]` for .NET Core 3.0+ methods. * Replaced `lock` with lightweight spinlock for improved performance in `Ulid.New`. * Refactored `FillTime` for simplicity and performance. Improved `FillRandom` performance by comparing timestamps as `ulong` values instead of as sequences of bytes. Updated benchmark results in README.
Enhanced ULID Generation with `GenerationOptions` and Improved Random… …ness (#17) Introduces significant enhancements to the ULID generation mechanism, providing greater flexibility, modularity, and addressing potential predictability concerns in monotonic ULID sequences. Features: * Configuration Object for ULID Generation (`GenerationOptions`) * Modularized Random Number Provider Implementations * Implemented Random-Sized Incrementing for Monotonic ULID Generation Deprecates: * `public static bool Ulid.DefaultIsMonotonic { get; set; }` * All public static `Ulid.New(..., bool? isMonotonic)` overloads.
PreviousNext