Skip to content

Latest commit

 

History

History
253 lines (215 loc) · 27.7 KB

File metadata and controls

253 lines (215 loc) · 27.7 KB

TypeSafeId Benchmarks

This document presents performance benchmarks for the TypeSafeId library and related implementations. The benchmarks are designed to compare the efficiency of various operations such as ID generation, parsing, and serialization across different libraries and approaches.

The results below are generated using BenchmarkDotNet and are intended to provide insight into the relative performance of TypeSafeId and alternative solutions. Benchmarks are run on a modern Windows system with .NET 10.

Libraries Compared

The following libraries and implementations are included in these benchmarks:

  • TypeSafeId (GitHub) — The library under test, providing type-safe, prefix-based unique identifiers.
  • FastIDs (GitHub) — Performance-oriented TypeId C# library.
  • TcKs (GitHub) — The .NET implementation of TypeID.
  • Cbuctok (GitHub) — Type-safe, K-sortable, globally unique identifier inspired by Stripe IDs.

TypeId Generation

This benchmark compares the generation of a new TypeId (benchmark name: TypeIdGeneration).


BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.7623/25H2/2025Update/HudsonValley2)
AMD Ryzen AI 9 HX PRO 370 w/ Radeon 890M 2.00GHz, 1 CPU, 24 logical and 12 physical cores
.NET SDK 10.0.102
  [Host]     : .NET 10.0.2 (10.0.2, 10.0.225.61305), X64 RyuJIT x86-64-v4
  DefaultJob : .NET 10.0.2 (10.0.2, 10.0.225.61305), X64 RyuJIT x86-64-v4


Method PrefixLength Mean Error StdDev Ratio RatioSD Gen0 Allocated Alloc Ratio
TypeSafeIdGenericGenerate 0 76.14 ns 0.141 ns 0.110 ns 1.00 0.00 - - NA
TypeSafeIdNotGenericGenerate 0 78.55 ns 0.110 ns 0.086 ns 1.03 0.00 - - NA
FastIdsGenerate 0 97.55 ns 0.809 ns 0.757 ns 1.28 0.01 - - NA
FastIdsNoCheckGenerate 0 92.95 ns 0.848 ns 0.708 ns 1.22 0.01 - - NA
TcKsGenerate 0 162.44 ns 2.282 ns 2.023 ns 2.13 0.03 0.0324 272 B NA
CbuctokGenerate 0 157.05 ns 1.557 ns 1.300 ns 2.06 0.02 0.0515 432 B NA
TypeSafeIdGenericGenerate 5 78.99 ns 0.509 ns 0.425 ns 1.00 0.01 - - NA
TypeSafeIdNotGenericGenerate 5 81.61 ns 0.701 ns 0.656 ns 1.03 0.01 - - NA
FastIdsGenerate 5 98.88 ns 0.688 ns 0.644 ns 1.25 0.01 - - NA
FastIdsNoCheckGenerate 5 94.14 ns 1.098 ns 1.027 ns 1.19 0.01 - - NA
TcKsGenerate 5 158.36 ns 1.951 ns 1.825 ns 2.00 0.02 0.0334 280 B NA
CbuctokGenerate 5 159.08 ns 2.271 ns 2.125 ns 2.01 0.03 0.0515 432 B NA
TypeSafeIdGenericGenerate 10 79.10 ns 0.710 ns 0.630 ns 1.00 0.01 - - NA
TypeSafeIdNotGenericGenerate 10 82.12 ns 0.889 ns 0.831 ns 1.04 0.01 - - NA
FastIdsGenerate 10 98.53 ns 0.515 ns 0.482 ns 1.25 0.01 - - NA
FastIdsNoCheckGenerate 10 93.11 ns 0.710 ns 0.630 ns 1.18 0.01 - - NA
TcKsGenerate 10 161.42 ns 1.484 ns 1.315 ns 2.04 0.02 0.0343 288 B NA
CbuctokGenerate 10 159.68 ns 1.931 ns 1.806 ns 2.02 0.03 0.0515 432 B NA
TypeSafeIdGenericGenerate 30 79.54 ns 0.572 ns 0.535 ns 1.00 0.01 - - NA
TypeSafeIdNotGenericGenerate 30 81.84 ns 0.797 ns 0.745 ns 1.03 0.01 - - NA
FastIdsGenerate 30 98.19 ns 0.481 ns 0.427 ns 1.23 0.01 - - NA
FastIdsNoCheckGenerate 30 94.56 ns 0.993 ns 0.881 ns 1.19 0.01 - - NA
TcKsGenerate 30 159.97 ns 2.443 ns 2.286 ns 2.01 0.03 0.0391 328 B NA
CbuctokGenerate 30 159.59 ns 2.957 ns 2.766 ns 2.01 0.04 0.0515 432 B NA
TypeSafeIdGenericGenerate 63 77.99 ns 0.382 ns 0.358 ns 1.00 0.01 - - NA
TypeSafeIdNotGenericGenerate 63 78.76 ns 0.175 ns 0.146 ns 1.01 0.00 - - NA
FastIdsGenerate 63 94.49 ns 0.160 ns 0.134 ns 1.21 0.01 - - NA
FastIdsNoCheckGenerate 63 89.23 ns 0.175 ns 0.155 ns 1.14 0.01 - - NA
TcKsGenerate 63 155.58 ns 0.617 ns 0.577 ns 1.99 0.01 0.0477 400 B NA
CbuctokGenerate 63 149.69 ns 0.330 ns 0.309 ns 1.92 0.01 0.0515 432 B NA

TypeId Creation from Uuid

This benchmarks compares the creation of a TypeId from an existing Uuid Guid instance (benchmark name: TypeIdCreateFromUuid). This is the typical creation operation if ID's are stored as Guid in a database.


BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.7623/25H2/2025Update/HudsonValley2)
AMD Ryzen AI 9 HX PRO 370 w/ Radeon 890M 2.00GHz, 1 CPU, 24 logical and 12 physical cores
.NET SDK 10.0.102
  [Host]     : .NET 10.0.2 (10.0.2, 10.0.225.61305), X64 RyuJIT x86-64-v4
  DefaultJob : .NET 10.0.2 (10.0.2, 10.0.225.61305), X64 RyuJIT x86-64-v4


Method PrefixLength Mean Error StdDev Median Ratio RatioSD Gen0 Allocated Alloc Ratio
TypeSafeIdGenericFromUuid 0 0.0054 ns 0.0013 ns 0.0012 ns 0.0056 ns 1.05 0.35 - - NA
TypeSafeIdNotGenericFromUuid 0 0.8736 ns 0.0067 ns 0.0063 ns 0.8731 ns 171.37 42.12 - - NA
FastIdsFromUuid 0 0.9460 ns 0.0045 ns 0.0038 ns 0.9456 ns 185.57 45.61 - - NA
TcKsFromUuid 0 58.8532 ns 0.5767 ns 0.5395 ns 58.9678 ns 11,544.30 2,837.89 0.0325 272 B NA
CbuctokFromUuid 0 64.9401 ns 0.7499 ns 0.7015 ns 64.9371 ns 12,738.27 3,132.24 0.0516 432 B NA
TypeSafeIdGenericFromUuid 5 0.0058 ns 0.0087 ns 0.0081 ns 0.0027 ns ? ? - - ?
TypeSafeIdNotGenericFromUuid 5 3.3244 ns 0.0458 ns 0.0382 ns 3.3281 ns ? ? - - ?
FastIdsFromUuid 5 2.4118 ns 0.0362 ns 0.0321 ns 2.4164 ns ? ? - - ?
TcKsFromUuid 5 58.7189 ns 0.6889 ns 0.6444 ns 58.9976 ns ? ? 0.0334 280 B ?
CbuctokFromUuid 5 72.5706 ns 0.8189 ns 0.7660 ns 72.5786 ns ? ? 0.0516 432 B ?
TypeSafeIdGenericFromUuid 10 0.0220 ns 0.0096 ns 0.0090 ns 0.0246 ns 3.88 11.60 - - NA
TypeSafeIdNotGenericFromUuid 10 1.7020 ns 0.0161 ns 0.0150 ns 1.7072 ns 301.21 829.32 - - NA
FastIdsFromUuid 10 3.4837 ns 0.0659 ns 0.0616 ns 3.4662 ns 616.52 1,697.67 - - NA
TcKsFromUuid 10 58.7567 ns 1.0390 ns 0.9719 ns 58.8947 ns 10,398.48 28,632.96 0.0343 288 B NA
CbuctokFromUuid 10 73.7536 ns 0.8737 ns 0.8172 ns 73.8889 ns 13,052.58 35,938.33 0.0516 432 B NA
TypeSafeIdGenericFromUuid 30 0.0260 ns 0.0114 ns 0.0106 ns 0.0281 ns 1.29 1.09 - - NA
TypeSafeIdNotGenericFromUuid 30 1.7579 ns 0.0482 ns 0.0451 ns 1.7563 ns 87.38 60.81 - - NA
FastIdsFromUuid 30 3.4680 ns 0.0458 ns 0.0382 ns 3.4709 ns 172.37 119.92 - - NA
TcKsFromUuid 30 61.0531 ns 0.8624 ns 0.7201 ns 61.0698 ns 3,034.54 2,111.19 0.0391 328 B NA
CbuctokFromUuid 30 83.7475 ns 0.8631 ns 0.7651 ns 83.7663 ns 4,162.53 2,895.19 0.0516 432 B NA
TypeSafeIdGenericFromUuid 63 0.0088 ns 0.0126 ns 0.0111 ns 0.0045 ns 18.11 83.56 - - NA
TypeSafeIdNotGenericFromUuid 63 2.2377 ns 0.0644 ns 0.0632 ns 2.2253 ns 4,609.10 12,989.04 - - NA
FastIdsFromUuid 63 4.4375 ns 0.0555 ns 0.0519 ns 4.4347 ns 9,140.14 25,752.97 - - NA
TcKsFromUuid 63 66.2870 ns 1.0219 ns 0.9559 ns 66.2657 ns 136,535.09 384,711.36 0.0478 400 B NA
CbuctokFromUuid 63 98.2191 ns 0.5691 ns 0.5324 ns 98.1597 ns 202,307.48 569,982.97 0.0516 432 B NA

TypeId Parse and Uuid Access

This benchmark compares the parsing of a string representation in TypeId format into a TypeId and accessing the UUID part as a Guid (benchmark name: TypeIdParseToUuid). This is the typical parse operation if the TypeId is obtained as a parameter, and is used for query in a database storing the TypeId as a Guid.


BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.7623/25H2/2025Update/HudsonValley2)
AMD Ryzen AI 9 HX PRO 370 w/ Radeon 890M 2.00GHz, 1 CPU, 24 logical and 12 physical cores
.NET SDK 10.0.102
  [Host]     : .NET 10.0.2 (10.0.2, 10.0.225.61305), X64 RyuJIT x86-64-v4
  DefaultJob : .NET 10.0.2 (10.0.2, 10.0.225.61305), X64 RyuJIT x86-64-v4


Method PrefixLength Mean Error StdDev Median Ratio RatioSD Gen0 Allocated Alloc Ratio
TypeSafeIdGenericParseToUuid 0 23.867 ns 0.0658 ns 0.0616 ns 23.848 ns 1.00 0.00 - - NA
TypeSafeIdGenericTryParseToUuid 0 23.990 ns 0.0274 ns 0.0256 ns 23.977 ns 1.01 0.00 - - NA
TypeSafeIdNotGenericParseToUuid 0 29.329 ns 0.0446 ns 0.0395 ns 29.325 ns 1.23 0.00 - - NA
TypeSafeIdNotGenericTryParseToUuid 0 27.687 ns 0.1361 ns 0.1136 ns 27.701 ns 1.16 0.01 - - NA
FastIdsParseToUuid 0 36.603 ns 0.1851 ns 0.1732 ns 36.574 ns 1.53 0.01 - - NA
FastIdsTryParseToUuid 0 36.020 ns 0.4180 ns 0.3705 ns 35.988 ns 1.51 0.02 - - NA
TcKsParseToUuid 0 NA NA NA NA ? ? NA NA ?
TcKsTryParseToUuid 0 1.801 ns 0.0357 ns 0.0298 ns 1.808 ns 0.08 0.00 - - NA
CbuctokParseToUuid 0 71.553 ns 0.9821 ns 0.8706 ns 71.281 ns 3.00 0.04 0.0381 320 B NA
CbuctokTryParseToUuid 0 75.326 ns 1.2807 ns 1.1353 ns 75.425 ns 3.16 0.05 0.0381 320 B NA
TypeSafeIdGenericParseToUuid 5 17.856 ns 0.1943 ns 0.1817 ns 17.850 ns 1.00 0.01 - - NA
TypeSafeIdGenericTryParseToUuid 5 17.895 ns 0.2085 ns 0.1950 ns 17.824 ns 1.00 0.01 - - NA
TypeSafeIdNotGenericParseToUuid 5 30.913 ns 0.3423 ns 0.3202 ns 30.885 ns 1.73 0.02 0.0038 32 B NA
TypeSafeIdNotGenericTryParseToUuid 5 27.455 ns 0.2752 ns 0.2575 ns 27.412 ns 1.54 0.02 0.0038 32 B NA
FastIdsParseToUuid 5 44.733 ns 0.7770 ns 0.6888 ns 44.607 ns 2.51 0.04 0.0038 32 B NA
FastIdsTryParseToUuid 5 42.665 ns 0.4115 ns 0.3648 ns 42.665 ns 2.39 0.03 0.0038 32 B NA
TcKsParseToUuid 5 44.316 ns 0.2693 ns 0.2387 ns 44.336 ns 2.48 0.03 - - NA
TcKsTryParseToUuid 5 44.157 ns 0.3485 ns 0.3260 ns 44.169 ns 2.47 0.03 - - NA
CbuctokParseToUuid 5 104.400 ns 0.9425 ns 0.8355 ns 104.290 ns 5.85 0.07 0.0526 440 B NA
CbuctokTryParseToUuid 5 94.385 ns 1.3873 ns 1.2976 ns 94.141 ns 5.29 0.09 0.0526 440 B NA
TypeSafeIdGenericParseToUuid 10 18.082 ns 0.2839 ns 0.2656 ns 17.995 ns 1.00 0.02 - - NA
TypeSafeIdGenericTryParseToUuid 10 18.053 ns 0.1758 ns 0.1645 ns 18.106 ns 1.00 0.02 - - NA
TypeSafeIdNotGenericParseToUuid 10 26.922 ns 0.1688 ns 0.1496 ns 26.938 ns 1.49 0.02 0.0057 48 B NA
TypeSafeIdNotGenericTryParseToUuid 10 26.640 ns 0.5388 ns 0.6414 ns 26.957 ns 1.47 0.04 0.0057 48 B NA
FastIdsParseToUuid 10 46.724 ns 0.5388 ns 0.4776 ns 46.694 ns 2.58 0.04 0.0057 48 B NA
FastIdsTryParseToUuid 10 65.521 ns 1.0946 ns 1.0239 ns 65.513 ns 3.62 0.07 0.0057 48 B NA
TcKsParseToUuid 10 47.115 ns 0.3845 ns 0.3597 ns 47.116 ns 2.61 0.04 - - NA
TcKsTryParseToUuid 10 47.801 ns 0.4486 ns 0.4196 ns 47.730 ns 2.64 0.04 - - NA
CbuctokParseToUuid 10 96.759 ns 0.9414 ns 0.8806 ns 96.701 ns 5.35 0.09 0.0545 456 B NA
CbuctokTryParseToUuid 10 101.331 ns 1.3934 ns 1.3034 ns 100.885 ns 5.60 0.11 0.0545 456 B NA
TypeSafeIdGenericParseToUuid 30 18.146 ns 0.1749 ns 0.1550 ns 18.137 ns 1.00 0.01 - - NA
TypeSafeIdGenericTryParseToUuid 30 18.196 ns 0.2291 ns 0.2143 ns 18.143 ns 1.00 0.01 - - NA
TypeSafeIdNotGenericParseToUuid 30 29.937 ns 0.3155 ns 0.2797 ns 29.793 ns 1.65 0.02 0.0105 88 B NA
TypeSafeIdNotGenericTryParseToUuid 30 29.018 ns 0.3276 ns 0.3065 ns 29.000 ns 1.60 0.02 0.0105 88 B NA
FastIdsParseToUuid 30 46.234 ns 0.4471 ns 0.3964 ns 46.362 ns 2.55 0.03 0.0105 88 B NA
FastIdsTryParseToUuid 30 62.066 ns 1.2636 ns 2.5526 ns 60.739 ns 3.42 0.14 0.0105 88 B NA
TcKsParseToUuid 30 51.625 ns 0.0732 ns 0.0649 ns 51.621 ns 2.85 0.02 - - NA
TcKsTryParseToUuid 30 51.941 ns 0.2078 ns 0.1842 ns 51.974 ns 2.86 0.03 - - NA
CbuctokParseToUuid 30 107.681 ns 0.7660 ns 0.6790 ns 107.716 ns 5.93 0.06 0.0592 496 B NA
CbuctokTryParseToUuid 30 112.632 ns 0.8963 ns 0.8384 ns 112.610 ns 6.21 0.07 0.0592 496 B NA
TypeSafeIdGenericParseToUuid 63 17.843 ns 0.0797 ns 0.0707 ns 17.846 ns 1.00 0.01 - - NA
TypeSafeIdGenericTryParseToUuid 63 17.825 ns 0.0532 ns 0.0471 ns 17.806 ns 1.00 0.00 - - NA
TypeSafeIdNotGenericParseToUuid 63 30.746 ns 0.2055 ns 0.1822 ns 30.772 ns 1.72 0.01 0.0181 152 B NA
TypeSafeIdNotGenericTryParseToUuid 63 31.506 ns 0.4413 ns 0.4128 ns 31.695 ns 1.77 0.02 0.0181 152 B NA
FastIdsParseToUuid 63 47.987 ns 0.2591 ns 0.2424 ns 48.023 ns 2.69 0.02 0.0181 152 B NA
FastIdsTryParseToUuid 63 66.355 ns 0.8784 ns 0.8217 ns 66.594 ns 3.72 0.05 0.0181 152 B NA
TcKsParseToUuid 63 56.773 ns 0.3392 ns 0.3173 ns 56.703 ns 3.18 0.02 - - NA
TcKsTryParseToUuid 63 56.930 ns 0.1448 ns 0.1209 ns 56.884 ns 3.19 0.01 - - NA
CbuctokParseToUuid 63 135.078 ns 1.3925 ns 1.3026 ns 134.733 ns 7.57 0.08 0.0668 560 B NA
CbuctokTryParseToUuid 63 156.074 ns 2.4574 ns 2.2986 ns 156.702 ns 8.75 0.13 0.0668 560 B NA

Benchmarks with issues: TypeIdParseToUuid.TcKsParseToUuid: DefaultJob [PrefixLength=0]

TypeId Serialization to String

This benchmark compares the formatting of a TypeId to its string representation (benchmark name: TypeIdToString). This is the typical operatin when fetched database TypeIds stored as Guid are serialized, for example as json.


BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.7623/25H2/2025Update/HudsonValley2)
AMD Ryzen AI 9 HX PRO 370 w/ Radeon 890M 2.00GHz, 1 CPU, 24 logical and 12 physical cores
.NET SDK 10.0.102
  [Host]     : .NET 10.0.2 (10.0.2, 10.0.225.61305), X64 RyuJIT x86-64-v4
  DefaultJob : .NET 10.0.2 (10.0.2, 10.0.225.61305), X64 RyuJIT x86-64-v4


BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.7623/25H2/2025Update/HudsonValley2) AMD Ryzen AI 9 HX PRO 370 w/ Radeon 890M 2.00GHz, 1 CPU, 24 logical and 12 physical cores .NET SDK 10.0.102 [Host] : .NET 10.0.2 (10.0.2, 10.0.225.61305), X64 RyuJIT x86-64-v4 DefaultJob : .NET 10.0.2 (10.0.2, 10.0.225.61305), X64 RyuJIT x86-64-v4

| Method                       | PrefixLength | Mean       | Error     | StdDev    | Ratio | RatioSD | Gen0   | Allocated | Alloc Ratio |
|----------------------------- |------------- |-----------:|----------:|----------:|------:|--------:|-------:|----------:|------------:|
| **TypeSafeIdGenericToString**    | **0**            | **19.2365 ns** | **0.1102 ns** | **0.0977 ns** |  **1.00** |    **0.01** | **0.0095** |      **80 B** |        **1.00** |
| TypeSafeIdNotGenericToString | 0            | 18.6773 ns | 0.1082 ns | 0.0845 ns |  0.97 |    0.01 | 0.0095 |      80 B |        1.00 |
| FastIdsDecodedToString       | 0            | 17.2327 ns | 0.0991 ns | 0.0927 ns |  0.90 |    0.01 | 0.0095 |      80 B |        1.00 |
| FastIdsEncodedToString       | 0            |  0.2258 ns | 0.0089 ns | 0.0083 ns |  0.01 |    0.00 |      - |         - |        0.00 |
| TcKsToString                 | 0            |  0.2333 ns | 0.0040 ns | 0.0034 ns |  0.01 |    0.00 |      - |         - |        0.00 |
| CbuctokToString              | 0            | 15.5463 ns | 0.0776 ns | 0.0648 ns |  0.81 |    0.01 | 0.0038 |      32 B |        0.40 |
|                              |              |            |           |           |       |         |        |           |             |
| **TypeSafeIdGenericToString**    | **5**            | **20.9728 ns** | **0.1106 ns** | **0.0980 ns** |  **1.00** |    **0.01** | **0.0105** |      **88 B** |        **1.00** |
| TypeSafeIdNotGenericToString | 5            | 19.7520 ns | 0.0718 ns | 0.0637 ns |  0.94 |    0.01 | 0.0105 |      88 B |        1.00 |
| FastIdsDecodedToString       | 5            | 27.7057 ns | 0.1273 ns | 0.1191 ns |  1.32 |    0.01 | 0.0105 |      88 B |        1.00 |
| FastIdsEncodedToString       | 5            |  0.2373 ns | 0.0111 ns | 0.0093 ns |  0.01 |    0.00 |      - |         - |        0.00 |
| TcKsToString                 | 5            |  0.2357 ns | 0.0071 ns | 0.0070 ns |  0.01 |    0.00 |      - |         - |        0.00 |
| CbuctokToString              | 5            | 22.8628 ns | 0.1777 ns | 0.1663 ns |  1.09 |    0.01 | 0.0143 |     120 B |        1.36 |
|                              |              |            |           |           |       |         |        |           |             |
| **TypeSafeIdGenericToString**    | **10**           | **20.6645 ns** | **0.0627 ns** | **0.0555 ns** |  **1.00** |    **0.00** | **0.0115** |      **96 B** |        **1.00** |
| TypeSafeIdNotGenericToString | 10           | 20.1654 ns | 0.0636 ns | 0.0564 ns |  0.98 |    0.00 | 0.0115 |      96 B |        1.00 |
| FastIdsDecodedToString       | 10           | 28.2944 ns | 0.1671 ns | 0.1563 ns |  1.37 |    0.01 | 0.0114 |      96 B |        1.00 |
| FastIdsEncodedToString       | 10           |  0.2208 ns | 0.0046 ns | 0.0043 ns |  0.01 |    0.00 |      - |         - |        0.00 |
| TcKsToString                 | 10           |  0.2247 ns | 0.0065 ns | 0.0060 ns |  0.01 |    0.00 |      - |         - |        0.00 |
| CbuctokToString              | 10           | 24.2657 ns | 0.2188 ns | 0.2047 ns |  1.17 |    0.01 | 0.0153 |     128 B |        1.33 |
|                              |              |            |           |           |       |         |        |           |             |
| **TypeSafeIdGenericToString**    | **30**           | **22.5371 ns** | **0.1272 ns** | **0.1128 ns** | **1.000** |    **0.01** | **0.0162** |     **136 B** |        **1.00** |
| TypeSafeIdNotGenericToString | 30           | 22.0389 ns | 0.1139 ns | 0.1065 ns | 0.978 |    0.01 | 0.0162 |     136 B |        1.00 |
| FastIdsDecodedToString       | 30           | 31.2427 ns | 0.1732 ns | 0.1535 ns | 1.386 |    0.01 | 0.0162 |     136 B |        1.00 |
| FastIdsEncodedToString       | 30           |  0.2295 ns | 0.0085 ns | 0.0080 ns | 0.010 |    0.00 |      - |         - |        0.00 |
| TcKsToString                 | 30           |  0.2071 ns | 0.0083 ns | 0.0073 ns | 0.009 |    0.00 |      - |         - |        0.00 |
| CbuctokToString              | 30           | 28.6366 ns | 0.4584 ns | 0.4288 ns | 1.271 |    0.02 | 0.0200 |     168 B |        1.24 |
|                              |              |            |           |           |       |         |        |           |             |
| **TypeSafeIdGenericToString**    | **63**           | **24.8496 ns** | **0.0521 ns** | **0.0488 ns** | **1.000** |    **0.00** | **0.0249** |     **208 B** |        **1.00** |
| TypeSafeIdNotGenericToString | 63           | 24.1955 ns | 0.1823 ns | 0.1705 ns | 0.974 |    0.01 | 0.0249 |     208 B |        1.00 |
| FastIdsDecodedToString       | 63           | 33.8998 ns | 0.6779 ns | 0.6341 ns | 1.364 |    0.02 | 0.0249 |     208 B |        1.00 |
| FastIdsEncodedToString       | 63           |  0.2301 ns | 0.0315 ns | 0.0294 ns | 0.009 |    0.00 |      - |         - |        0.00 |
| TcKsToString                 | 63           |  0.2116 ns | 0.0091 ns | 0.0085 ns | 0.009 |    0.00 |      - |         - |        0.00 |
| CbuctokToString              | 63           | 37.9408 ns | 0.5456 ns | 0.5103 ns | 1.527 |    0.02 | 0.0287 |     240 B |        1.15 |