diff --git a/benchmark/results/11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz.md b/benchmark/results/11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz.md index b681c6faab..b8fdf74922 100644 --- a/benchmark/results/11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz.md +++ b/benchmark/results/11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz.md @@ -8,112 +8,112 @@ ## is Components | typescript-json | typebox | ajv | io-ts | zod | class-validator ------------|-----------------|---------|-----|-------|-----|----------------- -object (simple) | 845335.522714833 | 1508073.0088495575 | 505594.2135140083 | 38842.95227524973 | 3538.040503557745 | 174.00761283306144 -object (hierarchical) | 143044.16403785488 | 196152.59314735068 | 40476.81524083393 | 9153.237410071943 | 401.0061085159899 | 52.107834268138234 -object (recursive) | 82480.17381857688 | 83774.43609022556 | 36782.56130790191 | 5393.376264949402 | 69.5763330898466 | 36.94719164023139 -object (union, explicit) | 21127.600297176818 | 12545.35232383808 | 6856.37342908438 | 3232.013385387619 | 32.66888150609081 | 96.42470205850486 -object (union, implicit) | 19405.0206069689 | Failed | Failed | Failed | 17.663293468261273 | 70.07786429365962 -array (recursive) | 6520.647321428571 | 5987.923147301006 | 2245.4293628808864 | 524.3632336655592 | 8.971962616822431 | 3.3106492551039173 -array (union, explicit) | 3741.603964030098 | 1858.576642335766 | 708.5972850678733 | 359.35769656699887 | 2.7553269654665686 | 37.03703703703704 -array (union, implicit) | 1993.7407952871868 | Failed | Failed | Failed | 1.6648168701442843 | 24.558139534883722 -ultimate union | 551.4986376021798 | Failed | Failed | Failed | 0.4790036723614881 | Failed +object (simple) | 844844.6796860741 | 1472811.0149198747 | 504766.69139465876 | 39234.97972723922 | 3619.5348837209303 | 158.39199703593926 +object (hierarchical) | 145360.21113942482 | 193691.01019462466 | 41810.72210065646 | 8936.736958934518 | 414.962325080732 | 60.74180254434688 +object (recursive) | 86033.33333333333 | 84779.44444444444 | 38324.17582417582 | 5543.30998894213 | 69.81701900870492 | 37.49310788458004 +object (union, explicit) | 19610.18222806688 | 12642.208774583964 | 6861.401952085182 | 3335.648582691947 | 32.3583180987203 | 91.24423963133641 +object (union, implicit) | 19622.47191011236 | Failed | Failed | Failed | 18.12522885389967 | 65.07352941176471 +array (recursive) | 6563.340807174887 | 5778.014941302028 | 2245.525221478937 | 497.8956999085087 | 9.511376352107423 | 3.32409972299169 +array (union, explicit) | 3763.53591160221 | 1947.5717439293599 | 765.4525386313466 | 355.0196298373528 | 2.7849981433345707 | 33.44120819848975 +array (union, implicit) | 603.3762933381738 | Failed | Failed | Failed | 1.6414371694327925 | 23.123508900715727 +ultimate union | 573.6832446320426 | Failed | Failed | Failed | 0.45207956600361665 | Failed ```mermaid pie title is - object (simple) - "typescript-json": 845335.522714833 - "typebox": 1508073.0088495575 - "ajv": 505594.2135140083 - "io-ts": 38842.95227524973 - "zod": 3538.040503557745 - "class-validator": 174.00761283306144 + "typescript-json": 844844.6796860741 + "typebox": 1472811.0149198747 + "ajv": 504766.69139465876 + "io-ts": 39234.97972723922 + "zod": 3619.5348837209303 + "class-validator": 158.39199703593926 ``` ```mermaid pie title is - object (hierarchical) - "typescript-json": 143044.16403785488 - "typebox": 196152.59314735068 - "ajv": 40476.81524083393 - "io-ts": 9153.237410071943 - "zod": 401.0061085159899 - "class-validator": 52.107834268138234 + "typescript-json": 145360.21113942482 + "typebox": 193691.01019462466 + "ajv": 41810.72210065646 + "io-ts": 8936.736958934518 + "zod": 414.962325080732 + "class-validator": 60.74180254434688 ``` ```mermaid pie title is - object (recursive) - "typescript-json": 82480.17381857688 - "typebox": 83774.43609022556 - "ajv": 36782.56130790191 - "io-ts": 5393.376264949402 - "zod": 69.5763330898466 - "class-validator": 36.94719164023139 + "typescript-json": 86033.33333333333 + "typebox": 84779.44444444444 + "ajv": 38324.17582417582 + "io-ts": 5543.30998894213 + "zod": 69.81701900870492 + "class-validator": 37.49310788458004 ``` ```mermaid pie title is - object (union, explicit) - "typescript-json": 21127.600297176818 - "typebox": 12545.35232383808 - "ajv": 6856.37342908438 - "io-ts": 3232.013385387619 - "zod": 32.66888150609081 - "class-validator": 96.42470205850486 + "typescript-json": 19610.18222806688 + "typebox": 12642.208774583964 + "ajv": 6861.401952085182 + "io-ts": 3335.648582691947 + "zod": 32.3583180987203 + "class-validator": 91.24423963133641 ``` ```mermaid pie title is - object (union, implicit) - "typescript-json": 19405.0206069689 + "typescript-json": 19622.47191011236 "typebox": 0 "ajv": 0 "io-ts": 0 - "zod": 17.663293468261273 - "class-validator": 70.07786429365962 + "zod": 18.12522885389967 + "class-validator": 65.07352941176471 ``` ```mermaid pie title is - array (recursive) - "typescript-json": 6520.647321428571 - "typebox": 5987.923147301006 - "ajv": 2245.4293628808864 - "io-ts": 524.3632336655592 - "zod": 8.971962616822431 - "class-validator": 3.3106492551039173 + "typescript-json": 6563.340807174887 + "typebox": 5778.014941302028 + "ajv": 2245.525221478937 + "io-ts": 497.8956999085087 + "zod": 9.511376352107423 + "class-validator": 3.32409972299169 ``` ```mermaid pie title is - array (union, explicit) - "typescript-json": 3741.603964030098 - "typebox": 1858.576642335766 - "ajv": 708.5972850678733 - "io-ts": 359.35769656699887 - "zod": 2.7553269654665686 - "class-validator": 37.03703703703704 + "typescript-json": 3763.53591160221 + "typebox": 1947.5717439293599 + "ajv": 765.4525386313466 + "io-ts": 355.0196298373528 + "zod": 2.7849981433345707 + "class-validator": 33.44120819848975 ``` ```mermaid pie title is - array (union, implicit) - "typescript-json": 1993.7407952871868 + "typescript-json": 603.3762933381738 "typebox": 0 "ajv": 0 "io-ts": 0 - "zod": 1.6648168701442843 - "class-validator": 24.558139534883722 + "zod": 1.6414371694327925 + "class-validator": 23.123508900715727 ``` ```mermaid pie title is - ultimate union - "typescript-json": 551.4986376021798 + "typescript-json": 573.6832446320426 "typebox": 0 "ajv": 0 "io-ts": 0 - "zod": 0.4790036723614881 + "zod": 0.45207956600361665 "class-validator": 0 ``` @@ -125,103 +125,103 @@ pie title is - ultimate union ## assertType (iterate) Components | typescript-json | typebox | io-ts | zod | class-validator ------------|-----------------|---------|-------|-----|----------------- -object (simple) | 145428.13400576368 | 2813.3259911894274 | 14248.325892857141 | 3003.9230338128154 | 151.04264512492955 -object (hierarchical) | 38738.47583643123 | 665.9376708583926 | 2954.9916651231706 | 334.6766807107529 | 59.94500458295143 -object (recursive) | 42062.217194570134 | 288.2932166301969 | 1517.818574514039 | 70.46979865771812 | 31.15149267569071 -object (union, explicit) | 5858.3714547118025 | 114.04318139878208 | 1012.3233055454875 | 33.777444173390876 | 92.70774448841152 -object (union, implicit) | 5240.640715216987 | Failed | Failed | 16.69359181475498 | 54.38066465256797 -array (recursive) | 1741.7035398230087 | 27.387255796969143 | 115.60044893378226 | 8.272058823529411 | 3.3149171270718236 -array (union, explicit) | 2278.8248337028826 | 17.149179420984694 | 76.99565955840724 | 2.7865502507895226 | 31.96766489068529 -array (union, implicit) | 911.2683723462167 | Failed | Failed | 1.6725515703400853 | 25.395033860045146 -ultimate union | 259.3406593406594 | Failed | Failed | 0.4747586643456243 | Failed +object (simple) | 264510.753659859 | 2787.2687704026116 | 14174.916882157371 | 3196.9752858723723 | 174.66129622848774 +object (hierarchical) | 44836.91529709229 | 666.6050978943481 | 3083.3646263612472 | 388.6486486486487 | 61.95348837209303 +object (recursive) | 40748.74371859297 | 310.83546151039764 | 1468.682505399568 | 70.04109077325364 | 38.7906446092413 +object (union, explicit) | 6156.675248253035 | 123.45451190256506 | 1065.2015982564476 | 34.450301204819276 | 90.80779944289694 +object (union, implicit) | 5908.724340175953 | Failed | Failed | 20.096762188314106 | 62.05770277626565 +array (recursive) | 2403.4833091436867 | 33.121257485029936 | 160.0296351176144 | 9.600903614457831 | 3.355079217148183 +array (union, explicit) | 2368.219178082192 | 17.781070568623818 | 79.31745734108382 | 2.787068004459309 | 32.172995780590725 +array (union, implicit) | 488.2840663302091 | Failed | Failed | 1.6216216216216217 | 26.013195098963244 +ultimate union | 266.89617684363105 | Failed | Failed | 0.4580152671755725 | Failed ```mermaid pie title assertType (iterate) - object (simple) - "typescript-json": 145428.13400576368 - "typebox": 2813.3259911894274 - "io-ts": 14248.325892857141 - "zod": 3003.9230338128154 - "class-validator": 151.04264512492955 + "typescript-json": 264510.753659859 + "typebox": 2787.2687704026116 + "io-ts": 14174.916882157371 + "zod": 3196.9752858723723 + "class-validator": 174.66129622848774 ``` ```mermaid pie title assertType (iterate) - object (hierarchical) - "typescript-json": 38738.47583643123 - "typebox": 665.9376708583926 - "io-ts": 2954.9916651231706 - "zod": 334.6766807107529 - "class-validator": 59.94500458295143 + "typescript-json": 44836.91529709229 + "typebox": 666.6050978943481 + "io-ts": 3083.3646263612472 + "zod": 388.6486486486487 + "class-validator": 61.95348837209303 ``` ```mermaid pie title assertType (iterate) - object (recursive) - "typescript-json": 42062.217194570134 - "typebox": 288.2932166301969 - "io-ts": 1517.818574514039 - "zod": 70.46979865771812 - "class-validator": 31.15149267569071 + "typescript-json": 40748.74371859297 + "typebox": 310.83546151039764 + "io-ts": 1468.682505399568 + "zod": 70.04109077325364 + "class-validator": 38.7906446092413 ``` ```mermaid pie title assertType (iterate) - object (union, explicit) - "typescript-json": 5858.3714547118025 - "typebox": 114.04318139878208 - "io-ts": 1012.3233055454875 - "zod": 33.777444173390876 - "class-validator": 92.70774448841152 + "typescript-json": 6156.675248253035 + "typebox": 123.45451190256506 + "io-ts": 1065.2015982564476 + "zod": 34.450301204819276 + "class-validator": 90.80779944289694 ``` ```mermaid pie title assertType (iterate) - object (union, implicit) - "typescript-json": 5240.640715216987 + "typescript-json": 5908.724340175953 "typebox": 0 "io-ts": 0 - "zod": 16.69359181475498 - "class-validator": 54.38066465256797 + "zod": 20.096762188314106 + "class-validator": 62.05770277626565 ``` ```mermaid pie title assertType (iterate) - array (recursive) - "typescript-json": 1741.7035398230087 - "typebox": 27.387255796969143 - "io-ts": 115.60044893378226 - "zod": 8.272058823529411 - "class-validator": 3.3149171270718236 + "typescript-json": 2403.4833091436867 + "typebox": 33.121257485029936 + "io-ts": 160.0296351176144 + "zod": 9.600903614457831 + "class-validator": 3.355079217148183 ``` ```mermaid pie title assertType (iterate) - array (union, explicit) - "typescript-json": 2278.8248337028826 - "typebox": 17.149179420984694 - "io-ts": 76.99565955840724 - "zod": 2.7865502507895226 - "class-validator": 31.96766489068529 + "typescript-json": 2368.219178082192 + "typebox": 17.781070568623818 + "io-ts": 79.31745734108382 + "zod": 2.787068004459309 + "class-validator": 32.172995780590725 ``` ```mermaid pie title assertType (iterate) - array (union, implicit) - "typescript-json": 911.2683723462167 + "typescript-json": 488.2840663302091 "typebox": 0 "io-ts": 0 - "zod": 1.6725515703400853 - "class-validator": 25.395033860045146 + "zod": 1.6216216216216217 + "class-validator": 26.013195098963244 ``` ```mermaid pie title assertType (iterate) - ultimate union - "typescript-json": 259.3406593406594 + "typescript-json": 266.89617684363105 "typebox": 0 "io-ts": 0 - "zod": 0.4747586643456243 + "zod": 0.4580152671755725 "class-validator": 0 ``` @@ -233,104 +233,104 @@ pie title assertType (iterate) - ultimate union ## assertType (throw) Components | typescript-json | typebox | io-ts | zod | class-validator ------------|-----------------|---------|-------|-----|----------------- -object (simple) | 449.99999999999994 | 23.345588235294116 | 96.26168224299066 | 30.95328522597797 | 1.8294914013904133 -object (hierarchical) | 288.88888888888886 | 6.3185281546181 | 25.579683474420317 | 2.9618659755646055 | 0.537345513164965 -object (recursive) | 33.864177192019035 | Failed | Failed | 0.17271157167530224 | 0.5501558774986246 -object (union, explicit) | 50.52857910768679 | 1.1045655375552281 | 10.04168245547556 | 0.34464931931759435 | 0.7270083605961469 -object (union, implicit) | 39.8391812865497 | Failed | Failed | 0.16758840288252053 | 0.7202016564638098 -array (recursive) | 17.589335308276247 | 0.35816618911174786 | 1.4967259120673528 | 0.15718327569946558 | 0.1195886151638364 -array (union, explicit) | 4.119648934264732 | 0.17044486108743823 | 0.5369608018614641 | 0.09297136481963555 | 0.36081544290095613 -array (union, implicit) | 1.6713091922005572 | Failed | Failed | 0.07618467164406521 | 0.3572066440435792 -ultimate union | 2.362347810285299 | Failed | Failed | 0.02077835726307478 | Failed +object (simple) | 45097.29831853391 | 2675.521821631879 | 9601.61556820268 | 3105.1253273475495 | 182.2489520685256 +object (hierarchical) | 29233.946676680436 | 733.0827067669172 | 3316.3745995854524 | 370.16472330186934 | 73.05936073059361 +object (recursive) | 4168.952276467361 | Failed | Failed | 17.90189760114572 | 73.27349331379374 +object (union, explicit) | 5209.071580439404 | 130.3538175046555 | 1039.5010395010395 | 35.505059470974615 | 92.4898261191269 +object (union, implicit) | 3091.4711765775596 | Failed | Failed | 17.84121320249777 | 72.85974499089252 +array (recursive) | 603.0701754385964 | 35.40449637103912 | 110.90573012939002 | 15.92356687898089 | 12.286521685710776 +array (union, explicit) | 446.17958728388174 | 17.304031839418585 | 55.493895671476146 | 10.869565217391305 | 35.542918073573844 +array (union, implicit) | 163.51744186046514 | Failed | Failed | 9.713453132588636 | 34.55425017277125 +ultimate union | 236.2347810285299 | Failed | Failed | 2.261420171867933 | Failed ```mermaid pie title assertType (throw) - object (simple) - "typescript-json": 449.99999999999994 - "typebox": 23.345588235294116 - "io-ts": 96.26168224299066 - "zod": 30.95328522597797 - "class-validator": 1.8294914013904133 + "typescript-json": 45097.29831853391 + "typebox": 2675.521821631879 + "io-ts": 9601.61556820268 + "zod": 3105.1253273475495 + "class-validator": 182.2489520685256 ``` ```mermaid pie title assertType (throw) - object (hierarchical) - "typescript-json": 288.88888888888886 - "typebox": 6.3185281546181 - "io-ts": 25.579683474420317 - "zod": 2.9618659755646055 - "class-validator": 0.537345513164965 + "typescript-json": 29233.946676680436 + "typebox": 733.0827067669172 + "io-ts": 3316.3745995854524 + "zod": 370.16472330186934 + "class-validator": 73.05936073059361 ``` ```mermaid pie title assertType (throw) - object (recursive) - "typescript-json": 33.864177192019035 + "typescript-json": 4168.952276467361 "typebox": 0 "io-ts": 0 - "zod": 0.17271157167530224 - "class-validator": 0.5501558774986246 + "zod": 17.90189760114572 + "class-validator": 73.27349331379374 ``` ```mermaid pie title assertType (throw) - object (union, explicit) - "typescript-json": 50.52857910768679 - "typebox": 1.1045655375552281 - "io-ts": 10.04168245547556 - "zod": 0.34464931931759435 - "class-validator": 0.7270083605961469 + "typescript-json": 5209.071580439404 + "typebox": 130.3538175046555 + "io-ts": 1039.5010395010395 + "zod": 35.505059470974615 + "class-validator": 92.4898261191269 ``` ```mermaid pie title assertType (throw) - object (union, implicit) - "typescript-json": 39.8391812865497 + "typescript-json": 3091.4711765775596 "typebox": 0 "io-ts": 0 - "zod": 0.16758840288252053 - "class-validator": 0.7202016564638098 + "zod": 17.84121320249777 + "class-validator": 72.85974499089252 ``` ```mermaid pie title assertType (throw) - array (recursive) - "typescript-json": 17.589335308276247 - "typebox": 0.35816618911174786 - "io-ts": 1.4967259120673528 - "zod": 0.15718327569946558 - "class-validator": 0.1195886151638364 + "typescript-json": 603.0701754385964 + "typebox": 35.40449637103912 + "io-ts": 110.90573012939002 + "zod": 15.92356687898089 + "class-validator": 12.286521685710776 ``` ```mermaid pie title assertType (throw) - array (union, explicit) - "typescript-json": 4.119648934264732 - "typebox": 0.17044486108743823 - "io-ts": 0.5369608018614641 - "zod": 0.09297136481963555 - "class-validator": 0.36081544290095613 + "typescript-json": 446.17958728388174 + "typebox": 17.304031839418585 + "io-ts": 55.493895671476146 + "zod": 10.869565217391305 + "class-validator": 35.542918073573844 ``` ```mermaid pie title assertType (throw) - array (union, implicit) - "typescript-json": 1.6713091922005572 + "typescript-json": 163.51744186046514 "typebox": 0 "io-ts": 0 - "zod": 0.07618467164406521 - "class-validator": 0.3572066440435792 + "zod": 9.713453132588636 + "class-validator": 34.55425017277125 ``` ```mermaid pie title assertType (throw) - ultimate union - "class-validator": 0 - "typescript-json": 2.362347810285299 + "typescript-json": 236.2347810285299 "typebox": 0 "io-ts": 0 - "zod": 0.02077835726307478 + "zod": 2.261420171867933 + "class-validator": 0 ``` @@ -341,103 +341,103 @@ pie title assertType (throw) - ultimate union ## validate Components | typescript-json | typebox | io-ts | zod | class-validator ------------|-----------------|---------|-------|-----|----------------- -object (simple) | 68000.72568940494 | 2741.2429378531074 | 11787.438768369488 | 3274.0975065128396 | 171.89483227561198 -object (hierarchical) | 23946.666666666664 | 746.2796252066876 | 2904.5758928571427 | 369.72024136039494 | 57.42145178764897 -object (recursive) | 19713.231118682565 | 307.198186283771 | 1467.9958027282266 | 68.74068554396423 | 36.11738148984199 -object (union, explicit) | 3496.517595307918 | 130.38632986627042 | 939.1444424557008 | 33.2894489373707 | 92.16335540838853 -object (union, implicit) | 3936.604189636163 | 123.20211960635882 | 285.93127017277385 | 17.05796038151137 | 59.4430560514102 -array (recursive) | 1180.6522535727372 | 31.796206768315358 | 133.79751599548362 | 8.330248056275453 | 3.297307199120718 -array (union, explicit) | 1785.4122621564484 | 17.927170868347336 | 78.53107344632768 | 2.779836916234248 | 33.74455732946299 -array (union, implicit) | 1018.1587071000545 | 13.038548752834465 | 59.24393454955802 | 1.6562384983437615 | 26.679280983916744 -ultimate union | 145.63617245005258 | Failed | Failed | 0.4878842088144414 | Failed +object (simple) | 64558.05731298847 | 2649.5742317660124 | 11583.897529734677 | 3141.1054172767203 | 172.5221893491124 +object (hierarchical) | 27220.636663007685 | 714.6017699115043 | 3150.3579952267305 | 399.092970521542 | 57.76708017033883 +object (recursive) | 16053.74797770987 | 308.3160475202716 | 1455.2650957290132 | 71.54929577464787 | 39.45863515059092 +object (union, explicit) | 4270.7111436950145 | 126.7605633802817 | 995.6505295007563 | 35.13411409142426 | 94.69555472543892 +object (union, implicit) | 3844.569970845481 | 122.41444151936818 | 266.7037861915367 | 19.600522680604815 | 64.9303008070433 +array (recursive) | 1361.6943582253057 | 36.83415187004156 | 173.22983718288526 | 9.626274065685164 | 3.3670033670033668 +array (union, explicit) | 1793.775027302512 | 16.706886950064973 | 78.65168539325843 | 2.75178866263071 | 36.42572566875356 +array (union, implicit) | 760.5019094380798 | 11.835431147848958 | 54.65932814575821 | 1.6635859519408505 | 25.452488687782804 +ultimate union | 165.04854368932038 | Failed | Failed | 0.46641791044776115 | Failed ```mermaid pie title validate - object (simple) - "typescript-json": 68000.72568940494 - "typebox": 2741.2429378531074 - "io-ts": 11787.438768369488 - "zod": 3274.0975065128396 - "class-validator": 171.89483227561198 + "typescript-json": 64558.05731298847 + "typebox": 2649.5742317660124 + "io-ts": 11583.897529734677 + "zod": 3141.1054172767203 + "class-validator": 172.5221893491124 ``` ```mermaid pie title validate - object (hierarchical) - "typescript-json": 23946.666666666664 - "typebox": 746.2796252066876 - "io-ts": 2904.5758928571427 - "zod": 369.72024136039494 - "class-validator": 57.42145178764897 + "typescript-json": 27220.636663007685 + "typebox": 714.6017699115043 + "io-ts": 3150.3579952267305 + "zod": 399.092970521542 + "class-validator": 57.76708017033883 ``` ```mermaid pie title validate - object (recursive) - "typescript-json": 19713.231118682565 - "typebox": 307.198186283771 - "io-ts": 1467.9958027282266 - "zod": 68.74068554396423 - "class-validator": 36.11738148984199 + "typescript-json": 16053.74797770987 + "typebox": 308.3160475202716 + "io-ts": 1455.2650957290132 + "zod": 71.54929577464787 + "class-validator": 39.45863515059092 ``` ```mermaid pie title validate - object (union, explicit) - "typescript-json": 3496.517595307918 - "typebox": 130.38632986627042 - "io-ts": 939.1444424557008 - "zod": 33.2894489373707 - "class-validator": 92.16335540838853 + "typescript-json": 4270.7111436950145 + "typebox": 126.7605633802817 + "io-ts": 995.6505295007563 + "zod": 35.13411409142426 + "class-validator": 94.69555472543892 ``` ```mermaid pie title validate - object (union, implicit) - "typescript-json": 3936.604189636163 - "typebox": 123.20211960635882 - "io-ts": 285.93127017277385 - "zod": 17.05796038151137 - "class-validator": 59.4430560514102 + "typescript-json": 3844.569970845481 + "typebox": 122.41444151936818 + "io-ts": 266.7037861915367 + "zod": 19.600522680604815 + "class-validator": 64.9303008070433 ``` ```mermaid pie title validate - array (recursive) - "typescript-json": 1180.6522535727372 - "typebox": 31.796206768315358 - "io-ts": 133.79751599548362 - "zod": 8.330248056275453 - "class-validator": 3.297307199120718 + "typescript-json": 1361.6943582253057 + "typebox": 36.83415187004156 + "io-ts": 173.22983718288526 + "zod": 9.626274065685164 + "class-validator": 3.3670033670033668 ``` ```mermaid pie title validate - array (union, explicit) - "typescript-json": 1785.4122621564484 - "typebox": 17.927170868347336 - "io-ts": 78.53107344632768 - "zod": 2.779836916234248 - "class-validator": 33.74455732946299 + "typescript-json": 1793.775027302512 + "typebox": 16.706886950064973 + "io-ts": 78.65168539325843 + "zod": 2.75178866263071 + "class-validator": 36.42572566875356 ``` ```mermaid pie title validate - array (union, implicit) - "typescript-json": 1018.1587071000545 - "typebox": 13.038548752834465 - "io-ts": 59.24393454955802 - "zod": 1.6562384983437615 - "class-validator": 26.679280983916744 + "typescript-json": 760.5019094380798 + "typebox": 11.835431147848958 + "io-ts": 54.65932814575821 + "zod": 1.6635859519408505 + "class-validator": 25.452488687782804 ``` ```mermaid pie title validate - ultimate union - "typescript-json": 145.63617245005258 + "typescript-json": 165.04854368932038 "typebox": 0 "io-ts": 0 - "zod": 0.4878842088144414 + "zod": 0.46641791044776115 "class-validator": 0 ``` @@ -449,77 +449,77 @@ pie title validate - ultimate union ## equals Components | typescript-json | typebox ------------|-----------------|--------- -object (simple) | 24923.755282013597 | 61068.16932380429 -object (hierarchical) | 8288.154269972452 | 16050.635242128521 -object (recursive) | 6349.1450634307785 | 10091.917884224154 -object (union, explicit) | 2594.565412992622 | 2990.7875722543354 -object (union, implicit) | 1784.0442620024987 | 2112.8860489882854 -array (recursive) | 518.7887632251003 | 1011.7431192660549 -array (union, explicit) | 667.8138018474914 | 594.2190105614229 -array (union, implicit) | 464.5799011532125 | 407.8516902944384 -ultimate union | 274.6478873239437 | 192.6605504587156 +object (simple) | 23141.6788856305 | 58077.600440286194 +object (hierarchical) | 7558.764024278094 | 15233.477789815817 +object (recursive) | 5916.589434661724 | 10434.687953555878 +object (union, explicit) | 2436.425501432665 | 2998.894620486367 +object (union, implicit) | 1586.3174772848743 | 2205.721574344023 +array (recursive) | 478.486646884273 | 887.5479978058145 +array (union, explicit) | 727.5040901654244 | 630.188679245283 +array (union, implicit) | 465.03244412400863 | 390.35162221844746 +ultimate union | 308.18531404504665 | 197.59168035030103 ```mermaid pie title equals - object (simple) - "typescript-json": 24923.755282013597 - "typebox": 61068.16932380429 + "typescript-json": 23141.6788856305 + "typebox": 58077.600440286194 ``` ```mermaid pie title equals - object (hierarchical) - "typescript-json": 8288.154269972452 - "typebox": 16050.635242128521 + "typescript-json": 7558.764024278094 + "typebox": 15233.477789815817 ``` ```mermaid pie title equals - object (recursive) - "typescript-json": 6349.1450634307785 - "typebox": 10091.917884224154 + "typescript-json": 5916.589434661724 + "typebox": 10434.687953555878 ``` ```mermaid pie title equals - object (union, explicit) - "typescript-json": 2594.565412992622 - "typebox": 2990.7875722543354 + "typescript-json": 2436.425501432665 + "typebox": 2998.894620486367 ``` ```mermaid pie title equals - object (union, implicit) - "typescript-json": 1784.0442620024987 - "typebox": 2112.8860489882854 + "typescript-json": 1586.3174772848743 + "typebox": 2205.721574344023 ``` ```mermaid pie title equals - array (recursive) - "typescript-json": 518.7887632251003 - "typebox": 1011.7431192660549 + "typescript-json": 478.486646884273 + "typebox": 887.5479978058145 ``` ```mermaid pie title equals - array (union, explicit) - "typescript-json": 667.8138018474914 - "typebox": 594.2190105614229 + "typescript-json": 727.5040901654244 + "typebox": 630.188679245283 ``` ```mermaid pie title equals - array (union, implicit) - "typescript-json": 464.5799011532125 - "typebox": 407.8516902944384 + "typescript-json": 465.03244412400863 + "typebox": 390.35162221844746 ``` ```mermaid pie title equals - ultimate union - "typescript-json": 274.6478873239437 - "typebox": 192.6605504587156 + "typescript-json": 308.18531404504665 + "typebox": 197.59168035030103 ``` @@ -530,77 +530,77 @@ pie title equals - ultimate union ## assertEquals (iterate) Components | typescript-json | typebox ------------|-----------------|--------- -object (simple) | 21048.845947396672 | 1877.10407239819 -object (hierarchical) | 6370.288248337029 | 619.9856733524356 -object (recursive) | 6261.759822910903 | 276.440962506995 -object (union, explicit) | 2287.096185435298 | 99.99999999999999 -object (union, implicit) | 1761.835923382725 | 71.98186283771018 -array (recursive) | 547.5285171102662 | 28.253908457336596 -array (union, explicit) | 367.9142441860465 | 15.358361774744026 -array (union, implicit) | 220.37914691943126 | 6.138392857142856 -ultimate union | 187.1216290588883 | 3.816793893129771 +object (simple) | 27821.739130434784 | 2371.70749677657 +object (hierarchical) | 7008.273579702151 | 665.9167604049494 +object (recursive) | 5426.685198054204 | 268.8937568455641 +object (union, explicit) | 2331.8534961154273 | 97.95240730492529 +object (union, implicit) | 1667.8681771369722 | 73.01886792452831 +array (recursive) | 562.2926649465536 | 29.4062205466541 +array (union, explicit) | 381.5502183406113 | 13.177159590043924 +array (union, implicit) | 227.74587221823404 | 6.629834254143647 +ultimate union | 194.3487250172295 | 3.95703787450537 ```mermaid pie title assertEquals (iterate) - object (simple) - "typescript-json": 21048.845947396672 - "typebox": 1877.10407239819 + "typescript-json": 27821.739130434784 + "typebox": 2371.70749677657 ``` ```mermaid pie title assertEquals (iterate) - object (hierarchical) - "typescript-json": 6370.288248337029 - "typebox": 619.9856733524356 + "typescript-json": 7008.273579702151 + "typebox": 665.9167604049494 ``` ```mermaid pie title assertEquals (iterate) - object (recursive) - "typescript-json": 6261.759822910903 - "typebox": 276.440962506995 + "typescript-json": 5426.685198054204 + "typebox": 268.8937568455641 ``` ```mermaid pie title assertEquals (iterate) - object (union, explicit) - "typescript-json": 2287.096185435298 - "typebox": 99.99999999999999 + "typescript-json": 2331.8534961154273 + "typebox": 97.95240730492529 ``` ```mermaid pie title assertEquals (iterate) - object (union, implicit) - "typescript-json": 1761.835923382725 - "typebox": 71.98186283771018 + "typescript-json": 1667.8681771369722 + "typebox": 73.01886792452831 ``` ```mermaid pie title assertEquals (iterate) - array (recursive) - "typescript-json": 547.5285171102662 - "typebox": 28.253908457336596 + "typescript-json": 562.2926649465536 + "typebox": 29.4062205466541 ``` ```mermaid pie title assertEquals (iterate) - array (union, explicit) - "typescript-json": 367.9142441860465 - "typebox": 15.358361774744026 + "typescript-json": 381.5502183406113 + "typebox": 13.177159590043924 ``` ```mermaid pie title assertEquals (iterate) - array (union, implicit) - "typescript-json": 220.37914691943126 - "typebox": 6.138392857142856 + "typescript-json": 227.74587221823404 + "typebox": 6.629834254143647 ``` ```mermaid pie title assertEquals (iterate) - ultimate union - "typescript-json": 187.1216290588883 - "typebox": 3.816793893129771 + "typescript-json": 194.3487250172295 + "typebox": 3.95703787450537 ``` @@ -611,77 +611,77 @@ pie title assertEquals (iterate) - ultimate union ## assertEquals (throw) Components | typescript-json | typebox ------------|-----------------|--------- -object (simple) | 153.68852459016392 | 19.690063810391976 -object (hierarchical) | 59.91124260355029 | 5.609844372059356 -object (recursive) | 50.08195228555819 | 2.587800369685767 -object (union, explicit) | 17.46089487086213 | 0.7074637424831978 -object (union, implicit) | 14.791336502905441 | 0.7287301876480233 -array (recursive) | 5.371365067605112 | 0.357653791130186 -array (union, explicit) | 2.2062879205736348 | 0.1716148961729878 -array (union, implicit) | 1.0789426362165078 | 0.15121729925903524 -ultimate union | 1.961133891959351 | 0.1310615989515072 +object (simple) | 14973.763118440778 | 2093.8628158844763 +object (hierarchical) | 5846.099665434055 | 615.3272422151781 +object (recursive) | 5030.542579949694 | 280.84628346751543 +object (union, explicit) | 2196.9974368363237 | 110.96726465692622 +object (union, implicit) | 1596.623233620848 | 73.17965605561653 +array (recursive) | 386.3845446182153 | 35.67606136282554 +array (union, explicit) | 200.69330414158003 | 17.346053772766695 +array (union, implicit) | 110.11194714626538 | 13.906271728549576 +ultimate union | 200.76656324146742 | 13.104442405975625 ```mermaid pie title assertEquals (throw) - object (simple) - "typescript-json": 153.68852459016392 - "typebox": 19.690063810391976 + "typescript-json": 14973.763118440778 + "typebox": 2093.8628158844763 ``` ```mermaid pie title assertEquals (throw) - object (hierarchical) - "typescript-json": 59.91124260355029 - "typebox": 5.609844372059356 + "typescript-json": 5846.099665434055 + "typebox": 615.3272422151781 ``` ```mermaid pie title assertEquals (throw) - object (recursive) - "typescript-json": 50.08195228555819 - "typebox": 2.587800369685767 + "typescript-json": 5030.542579949694 + "typebox": 280.84628346751543 ``` ```mermaid pie title assertEquals (throw) - object (union, explicit) - "typescript-json": 17.46089487086213 - "typebox": 0.7074637424831978 + "typescript-json": 2196.9974368363237 + "typebox": 110.96726465692622 ``` ```mermaid pie title assertEquals (throw) - object (union, implicit) - "typescript-json": 14.791336502905441 - "typebox": 0.7287301876480233 + "typescript-json": 1596.623233620848 + "typebox": 73.17965605561653 ``` ```mermaid pie title assertEquals (throw) - array (recursive) - "typescript-json": 5.371365067605112 - "typebox": 0.357653791130186 + "typescript-json": 386.3845446182153 + "typebox": 35.67606136282554 ``` ```mermaid pie title assertEquals (throw) - array (union, explicit) - "typescript-json": 2.2062879205736348 - "typebox": 0.1716148961729878 + "typescript-json": 200.69330414158003 + "typebox": 17.346053772766695 ``` ```mermaid pie title assertEquals (throw) - array (union, implicit) - "typescript-json": 1.0789426362165078 - "typebox": 0.15121729925903524 + "typescript-json": 110.11194714626538 + "typebox": 13.906271728549576 ``` ```mermaid pie title assertEquals (throw) - ultimate union - "typescript-json": 1.961133891959351 - "typebox": 0.1310615989515072 + "typescript-json": 200.76656324146742 + "typebox": 13.104442405975625 ``` @@ -692,77 +692,77 @@ pie title assertEquals (throw) - ultimate union ## validateEquals Components | typescript-json | typebox ------------|-----------------|--------- -object (simple) | 15541.896361631752 | 2293.4621099554233 -object (hierarchical) | 5583.6846929422545 | 641.5863602668644 -object (recursive) | 4580.1738487146295 | 271.60262417994375 -object (union, explicit) | 1461.5248540597913 | 95.17696680726205 -object (union, implicit) | 1096.0422163588391 | 72.25488336810166 -array (recursive) | 332.67857142857144 | 30.68763023299868 -array (union, explicit) | 324.3243243243243 | 14.700339238597813 -array (union, implicit) | 181.08651911468814 | 6.801435858681277 -ultimate union | 126.15823235923023 | 3.92156862745098 +object (simple) | 14873.595505617977 | 2167.0416197975255 +object (hierarchical) | 5394.97594869054 | 638.3454443823365 +object (recursive) | 4489.2285030381145 | 269.5035460992908 +object (union, explicit) | 1432.0241691842903 | 100.09478672985782 +object (union, implicit) | 1151.1248185776487 | 72.03630175836642 +array (recursive) | 330.69591800035965 | 29.920963492660896 +array (union, explicit) | 314.79867526581836 | 15.239887111947318 +array (union, implicit) | 203.9250669045495 | 6.162464985994397 +ultimate union | 131.49266609145815 | 3.9018952062430325 ```mermaid pie title validateEquals - object (simple) - "typescript-json": 15541.896361631752 - "typebox": 2293.4621099554233 + "typescript-json": 14873.595505617977 + "typebox": 2167.0416197975255 ``` ```mermaid pie title validateEquals - object (hierarchical) - "typescript-json": 5583.6846929422545 - "typebox": 641.5863602668644 + "typescript-json": 5394.97594869054 + "typebox": 638.3454443823365 ``` ```mermaid pie title validateEquals - object (recursive) - "typescript-json": 4580.1738487146295 - "typebox": 271.60262417994375 + "typescript-json": 4489.2285030381145 + "typebox": 269.5035460992908 ``` ```mermaid pie title validateEquals - object (union, explicit) - "typescript-json": 1461.5248540597913 - "typebox": 95.17696680726205 + "typescript-json": 1432.0241691842903 + "typebox": 100.09478672985782 ``` ```mermaid pie title validateEquals - object (union, implicit) - "typescript-json": 1096.0422163588391 - "typebox": 72.25488336810166 + "typescript-json": 1151.1248185776487 + "typebox": 72.03630175836642 ``` ```mermaid pie title validateEquals - array (recursive) - "typescript-json": 332.67857142857144 - "typebox": 30.68763023299868 + "typescript-json": 330.69591800035965 + "typebox": 29.920963492660896 ``` ```mermaid pie title validateEquals - array (union, explicit) - "typescript-json": 324.3243243243243 - "typebox": 14.700339238597813 + "typescript-json": 314.79867526581836 + "typebox": 15.239887111947318 ``` ```mermaid pie title validateEquals - array (union, implicit) - "typescript-json": 181.08651911468814 - "typebox": 6.801435858681277 + "typescript-json": 203.9250669045495 + "typebox": 6.162464985994397 ``` ```mermaid pie title validateEquals - ultimate union - "typescript-json": 126.15823235923023 - "typebox": 3.92156862745098 + "typescript-json": 131.49266609145815 + "typebox": 3.9018952062430325 ``` @@ -773,68 +773,68 @@ pie title validateEquals - ultimate union ## optimizer Components | typescript-json | typebox | ajv ------------|-----------------|---------|----- -object (hierarchical) | 139064.5045045045 | 177.9692082111437 | 4.35334663522583 -object (recursive) | 80347.18693284936 | 685.0741002117148 | 7.965913301222676 -object (union) | 18396.53617174815 | 87.89171147784165 | 3.943661971830986 -array (hierarchical) | 6079.394387001476 | 904.1121495327103 | 5.522827687776141 -array (recursive) | 7119.610319321667 | 723.0309817095932 | 8.149657343952583 -array (union) | 3899.7805413313827 | 217.2054998141955 | 5.329902591435398 -ultimate union | 558.0398732997951 | 9.693053311793216 | 0.7229351165732875 +object (hierarchical) | 140421.48309705564 | 173.22551662174303 | 4.425594689286373 +object (recursive) | 83949.08955778522 | 714.2334431028174 | 8.236615499812805 +object (union) | 19058.301647655262 | 86.47450110864744 | 4.063538973032878 +array (hierarchical) | 8515.262292085541 | 817.4760787145694 | 5.684944067485787 +array (recursive) | 7369.933677229182 | 714.8323615160349 | 8.53590647615513 +array (union) | 4122.292993630574 | 227.53596114328414 | 5.546311702717693 +ultimate union | 576.0988013076643 | 10.439970171513796 | 0.7336757153338225 ```mermaid pie title optimizer - object (hierarchical) - "typescript-json": 139064.5045045045 - "typebox": 177.9692082111437 - "ajv": 4.35334663522583 + "typescript-json": 140421.48309705564 + "typebox": 173.22551662174303 + "ajv": 4.425594689286373 ``` ```mermaid pie title optimizer - object (recursive) - "typescript-json": 80347.18693284936 - "typebox": 685.0741002117148 - "ajv": 7.965913301222676 + "typescript-json": 83949.08955778522 + "typebox": 714.2334431028174 + "ajv": 8.236615499812805 ``` ```mermaid pie title optimizer - object (union) - "typescript-json": 18396.53617174815 - "typebox": 87.89171147784165 - "ajv": 3.943661971830986 + "typescript-json": 19058.301647655262 + "typebox": 86.47450110864744 + "ajv": 4.063538973032878 ``` ```mermaid pie title optimizer - array (hierarchical) - "typescript-json": 6079.394387001476 - "typebox": 904.1121495327103 - "ajv": 5.522827687776141 + "typescript-json": 8515.262292085541 + "typebox": 817.4760787145694 + "ajv": 5.684944067485787 ``` ```mermaid pie title optimizer - array (recursive) - "typescript-json": 7119.610319321667 - "typebox": 723.0309817095932 - "ajv": 8.149657343952583 + "typescript-json": 7369.933677229182 + "typebox": 714.8323615160349 + "ajv": 8.53590647615513 ``` ```mermaid pie title optimizer - array (union) - "typescript-json": 3899.7805413313827 - "typebox": 217.2054998141955 - "ajv": 5.329902591435398 + "typescript-json": 4122.292993630574 + "typebox": 227.53596114328414 + "ajv": 5.546311702717693 ``` ```mermaid pie title optimizer - ultimate union - "typescript-json": 558.0398732997951 - "typebox": 9.693053311793216 - "ajv": 0.7229351165732875 + "typescript-json": 576.0988013076643 + "typebox": 10.439970171513796 + "ajv": 0.7336757153338225 ``` @@ -845,82 +845,82 @@ pie title optimizer - ultimate union ## stringify Components | TSON.stringify() | TSON.assertStringify() | TSON.isStringify() | JSON.stringify() | fast-json-stringify ------------|------------------|------------------------|--------------------|------------------|--------------------- -object (simple) | 31820.33400623968 | 26257.467472970497 | 27560.243183493 | 6119.332195029407 | 23169.116312828886 -object (hierarchical) | 4276.885735623599 | 3720.4802006808814 | 4045.1508036843056 | 1510.9340252038548 | 3933.8842975206608 -object (recursive) | 4119.963536918869 | 3977.0218925275917 | 4124.520723023553 | 1251.1839363515817 | 1215.759152573871 -object (union) | 1390.8610959402877 | 1080.9228039041705 | 1249.1926803013994 | 618.7766714082504 | 1216.5202108963092 -array (hierarchical) | 218.52387843704778 | 190.88669950738915 | 211.46633327379888 | 106.11712047743379 | 294.3026267110618 -array (recursive) | 252.85451197053408 | 220.36390369417387 | 238.27183385870575 | 128.43009146910583 | 127.2895467160037 -array (union) | 297.5766215253029 | 256.6017118921872 | 289.4255396999634 | 254.6941810745492 | 225.67592422291705 +object (simple) | 31814.595660749506 | 26679.231605654222 | 28703.636031427006 | 6145.971563981042 | 23161.887477313976 +object (hierarchical) | 4609.652366863905 | 3884.870188003581 | 4019.784172661871 | 1516.6604961125508 | 4039.4423041643736 +object (recursive) | 4402.183971867481 | 4199.705232129698 | 4253.904097005328 | 1245.2617751923437 | 1238.336143901068 +object (union) | 1357.1809930592633 | 1075.0835238262705 | 1311.5476409032494 | 624.5023525153819 | 1227.6973804726142 +array (hierarchical) | 54.59822238345728 | 51.55766077609765 | 55.6745182012848 | 30.162842339008144 | 78.33935018050542 +array (recursive) | 241.06666666666666 | 221.74535050071532 | 239.8598820058997 | 122.53750225917223 | 124.86348744084457 +array (union) | 305.17711171662125 | 250.04446025253424 | 272.0481049562682 | 266.05335786568537 | 229.39785337456794 ```mermaid pie title stringify - object (simple) - "TSON.stringify()": 31820.33400623968 - "TSON.assertStringify()": 26257.467472970497 - "TSON.isStringify()": 27560.243183493 - "JSON.stringify()": 6119.332195029407 - "fast-json-stringify": 23169.116312828886 + "TSON.stringify()": 31814.595660749506 + "TSON.assertStringify()": 26679.231605654222 + "TSON.isStringify()": 28703.636031427006 + "JSON.stringify()": 6145.971563981042 + "fast-json-stringify": 23161.887477313976 ``` ```mermaid pie title stringify - object (hierarchical) - "TSON.stringify()": 4276.885735623599 - "TSON.assertStringify()": 3720.4802006808814 - "TSON.isStringify()": 4045.1508036843056 - "JSON.stringify()": 1510.9340252038548 - "fast-json-stringify": 3933.8842975206608 + "TSON.stringify()": 4609.652366863905 + "TSON.assertStringify()": 3884.870188003581 + "TSON.isStringify()": 4019.784172661871 + "JSON.stringify()": 1516.6604961125508 + "fast-json-stringify": 4039.4423041643736 ``` ```mermaid pie title stringify - object (recursive) - "TSON.stringify()": 4119.963536918869 - "TSON.assertStringify()": 3977.0218925275917 - "TSON.isStringify()": 4124.520723023553 - "JSON.stringify()": 1251.1839363515817 - "fast-json-stringify": 1215.759152573871 + "TSON.stringify()": 4402.183971867481 + "TSON.assertStringify()": 4199.705232129698 + "TSON.isStringify()": 4253.904097005328 + "JSON.stringify()": 1245.2617751923437 + "fast-json-stringify": 1238.336143901068 ``` ```mermaid pie title stringify - object (union) - "TSON.stringify()": 1390.8610959402877 - "TSON.assertStringify()": 1080.9228039041705 - "TSON.isStringify()": 1249.1926803013994 - "JSON.stringify()": 618.7766714082504 - "fast-json-stringify": 1216.5202108963092 + "TSON.stringify()": 1357.1809930592633 + "TSON.assertStringify()": 1075.0835238262705 + "TSON.isStringify()": 1311.5476409032494 + "JSON.stringify()": 624.5023525153819 + "fast-json-stringify": 1227.6973804726142 ``` ```mermaid pie title stringify - array (hierarchical) - "TSON.stringify()": 218.52387843704778 - "TSON.assertStringify()": 190.88669950738915 - "TSON.isStringify()": 211.46633327379888 - "JSON.stringify()": 106.11712047743379 - "fast-json-stringify": 294.3026267110618 + "TSON.stringify()": 54.59822238345728 + "TSON.assertStringify()": 51.55766077609765 + "TSON.isStringify()": 55.6745182012848 + "JSON.stringify()": 30.162842339008144 + "fast-json-stringify": 78.33935018050542 ``` ```mermaid pie title stringify - array (recursive) - "TSON.stringify()": 252.85451197053408 - "TSON.assertStringify()": 220.36390369417387 - "TSON.isStringify()": 238.27183385870575 - "JSON.stringify()": 128.43009146910583 - "fast-json-stringify": 127.2895467160037 + "TSON.stringify()": 241.06666666666666 + "TSON.assertStringify()": 221.74535050071532 + "TSON.isStringify()": 239.8598820058997 + "JSON.stringify()": 122.53750225917223 + "fast-json-stringify": 124.86348744084457 ``` ```mermaid pie title stringify - array (union) - "TSON.stringify()": 297.5766215253029 - "TSON.assertStringify()": 256.6017118921872 - "TSON.isStringify()": 289.4255396999634 - "JSON.stringify()": 254.6941810745492 - "fast-json-stringify": 225.67592422291705 + "TSON.stringify()": 305.17711171662125 + "TSON.assertStringify()": 250.04446025253424 + "TSON.isStringify()": 272.0481049562682 + "JSON.stringify()": 266.05335786568537 + "fast-json-stringify": 229.39785337456794 ``` @@ -931,4 +931,4 @@ pie title stringify - array (union) -> Total elapsed time: 1,770,034 ms +> Total elapsed time: 1,761,068 ms diff --git a/benchmark/results/AMD Ryzen 9 5900HX with Radeon Graphics.md b/benchmark/results/AMD Ryzen 9 5900HX with Radeon Graphics.md index f469b3544d..f4e80ecbe3 100644 --- a/benchmark/results/AMD Ryzen 9 5900HX with Radeon Graphics.md +++ b/benchmark/results/AMD Ryzen 9 5900HX with Radeon Graphics.md @@ -8,112 +8,112 @@ ## is Components | typescript-json | typebox | ajv | io-ts | zod | class-validator ------------|-----------------|---------|-----|-------|-----|----------------- -object (simple) | 1075020.3347129745 | 1716862.8107917474 | 512979.0585287274 | 37097.93541556379 | 4144.53125 | 163.17767042404722 -object (hierarchical) | 169810.2404110846 | 205283.49410503753 | 53247.43935309972 | 9191.398613826195 | 452.4103831891223 | 55.53539019963703 -object (recursive) | 95652.27272727274 | 92351.12670853344 | 43461.10721793973 | 5791.936378768263 | 74.74897731498699 | 42.84929500091558 -object (union, explicit) | 18628.571428571428 | 14040.396621373486 | 8459.2186429061 | 3343.0985915492956 | 36.28813865318649 | 112.03549639489741 -object (union, implicit) | 21082.64915161467 | Failed | Failed | Failed | 18.836565096952906 | 78.87428254027031 -array (recursive) | 7419.672131147541 | 7631.292261457551 | 2351.4824797843667 | 535.0635008282717 | 9.983361064891847 | 3.7783375314861463 -array (union, explicit) | 4093.7675463222913 | 1923.3314947600663 | 820.480631276901 | 387.3291466568157 | 3.2840722495894914 | 42.1130402659771 -array (union, implicit) | 2125.9052924791085 | Failed | Failed | Failed | 2.175883952855848 | 29.937864808887213 -ultimate union | 681.3166605369621 | Failed | Failed | Failed | 0.486854917234664 | Failed +object (simple) | 1041434.2535415909 | 1573634.5823306977 | 529566.6480758506 | 38836.636414150766 | 3968.1296667273728 | 192.71948608137043 +object (hierarchical) | 167715.7603686636 | 198716.4911006175 | 53944.87750556793 | 9577.859778597785 | 448.3194795807734 | 66.32837984777093 +object (recursive) | 98435.42836442674 | 90802.74725274724 | 45261.44756277696 | 5616.134271792095 | 75.78830905402913 | 41.51689432063264 +object (union, explicit) | 19973.743016759778 | 14631.203007518798 | 8913.66120218579 | 3314.542783694455 | 36.85368536853686 | 114.99244712990935 +object (union, implicit) | 21272.166105499437 | Failed | Failed | Failed | 19.87120515179393 | 75.38488763050788 +array (recursive) | 8073.005093378607 | 7497.552130553037 | 2328.8614938361134 | 514.5985401459853 | 10.116148370176095 | 3.896103896103896 +array (union, explicit) | 4081.3583303855676 | 2013.829190805457 | 850.7462686567164 | 391.9120387625792 | 3.352579623766064 | 42.72062956717257 +array (union, implicit) | 2075.1423847143124 | Failed | Failed | Failed | 2.203856749311295 | 30.699260943718023 +ultimate union | 641.5232515562066 | Failed | Failed | Failed | 0.5027652086475616 | Failed ```mermaid pie title is - object (simple) - "typescript-json": 1075020.3347129745 - "typebox": 1716862.8107917474 - "ajv": 512979.0585287274 - "io-ts": 37097.93541556379 - "zod": 4144.53125 - "class-validator": 163.17767042404722 + "typescript-json": 1041434.2535415909 + "typebox": 1573634.5823306977 + "ajv": 529566.6480758506 + "io-ts": 38836.636414150766 + "zod": 3968.1296667273728 + "class-validator": 192.71948608137043 ``` ```mermaid pie title is - object (hierarchical) - "typescript-json": 169810.2404110846 - "typebox": 205283.49410503753 - "ajv": 53247.43935309972 - "io-ts": 9191.398613826195 - "zod": 452.4103831891223 - "class-validator": 55.53539019963703 + "typescript-json": 167715.7603686636 + "typebox": 198716.4911006175 + "ajv": 53944.87750556793 + "io-ts": 9577.859778597785 + "zod": 448.3194795807734 + "class-validator": 66.32837984777093 ``` ```mermaid pie title is - object (recursive) - "typescript-json": 95652.27272727274 - "typebox": 92351.12670853344 - "ajv": 43461.10721793973 - "io-ts": 5791.936378768263 - "zod": 74.74897731498699 - "class-validator": 42.84929500091558 + "typescript-json": 98435.42836442674 + "typebox": 90802.74725274724 + "ajv": 45261.44756277696 + "io-ts": 5616.134271792095 + "zod": 75.78830905402913 + "class-validator": 41.51689432063264 ``` ```mermaid pie title is - object (union, explicit) - "typescript-json": 18628.571428571428 - "typebox": 14040.396621373486 - "ajv": 8459.2186429061 - "io-ts": 3343.0985915492956 - "zod": 36.28813865318649 - "class-validator": 112.03549639489741 + "typescript-json": 19973.743016759778 + "typebox": 14631.203007518798 + "ajv": 8913.66120218579 + "io-ts": 3314.542783694455 + "zod": 36.85368536853686 + "class-validator": 114.99244712990935 ``` ```mermaid pie title is - object (union, implicit) - "typescript-json": 21082.64915161467 + "typescript-json": 21272.166105499437 "typebox": 0 "ajv": 0 "io-ts": 0 - "zod": 18.836565096952906 - "class-validator": 78.87428254027031 + "zod": 19.87120515179393 + "class-validator": 75.38488763050788 ``` ```mermaid pie title is - array (recursive) - "typescript-json": 7419.672131147541 - "typebox": 7631.292261457551 - "ajv": 2351.4824797843667 - "io-ts": 535.0635008282717 - "zod": 9.983361064891847 - "class-validator": 3.7783375314861463 + "typescript-json": 8073.005093378607 + "typebox": 7497.552130553037 + "ajv": 2328.8614938361134 + "io-ts": 514.5985401459853 + "zod": 10.116148370176095 + "class-validator": 3.896103896103896 ``` ```mermaid pie title is - array (union, explicit) - "typescript-json": 4093.7675463222913 - "typebox": 1923.3314947600663 - "ajv": 820.480631276901 - "io-ts": 387.3291466568157 - "zod": 3.2840722495894914 - "class-validator": 42.1130402659771 + "typescript-json": 4081.3583303855676 + "typebox": 2013.829190805457 + "ajv": 850.7462686567164 + "io-ts": 391.9120387625792 + "zod": 3.352579623766064 + "class-validator": 42.72062956717257 ``` ```mermaid pie title is - array (union, implicit) - "typescript-json": 2125.9052924791085 + "typescript-json": 2075.1423847143124 "typebox": 0 "ajv": 0 "io-ts": 0 - "zod": 2.175883952855848 - "class-validator": 29.937864808887213 + "zod": 2.203856749311295 + "class-validator": 30.699260943718023 ``` ```mermaid pie title is - ultimate union - "typescript-json": 681.3166605369621 + "typescript-json": 641.5232515562066 "typebox": 0 "ajv": 0 "io-ts": 0 - "zod": 0.486854917234664 + "zod": 0.5027652086475616 "class-validator": 0 ``` @@ -125,103 +125,103 @@ pie title is - ultimate union ## assertType (iterate) Components | typescript-json | typebox | io-ts | zod | class-validator ------------|-----------------|---------|-------|-----|----------------- -object (simple) | 348013.37613697164 | 3489.016736401674 | 18859.619686800896 | 3632.1797427070123 | 201.980198019802 -object (hierarchical) | 63650.42107149256 | 884.4148840553659 | 4070.2494497432135 | 448.40455308826273 | 68.18181818181819 -object (recursive) | 49955.79514824797 | 402.22222222222223 | 1965.1205259313365 | 79.3443844291302 | 42.47594844799419 -object (union, explicit) | 7746.318114874815 | 151.91218130311614 | 1332.9001113999257 | 37.49300503637381 | 117.83681214421253 -object (union, implicit) | 7054.393305439331 | Failed | Failed | 19.509476031215165 | 78.14520598559025 -array (recursive) | 3001.688555347092 | 41.596402473299605 | 185.5612998522895 | 10.087801232953485 | 3.8917716827279465 -array (union, explicit) | 2590.7839177528913 | 20.574606116774795 | 88.54454897620364 | 3.299725022914757 | 40.99107305520131 -array (union, implicit) | 1192.8345626975765 | Failed | Failed | 2.165283291230603 | 29.055690072639223 -ultimate union | 294.3192064923354 | Failed | Failed | 0.47930979389678857 | Failed +object (simple) | 357276.54232424684 | 3544.761213001635 | 18484.288022984376 | 3758.995502248875 | 198.20948970456578 +object (hierarchical) | 65523.67841409691 | 890.5419766206164 | 4183.383233532934 | 430.89725036179453 | 67.76859504132231 +object (recursive) | 48407.38047627704 | 389.32126696832574 | 1854.5258620689656 | 77.62985186574161 | 43.96650171298059 +object (union, explicit) | 7256.667884545122 | 156.50741350906094 | 1211.164219870263 | 36.25709577000549 | 110.20408163265307 +object (union, implicit) | 7077.808219178083 | Failed | Failed | 20.92760180995475 | 77.10666421883606 +array (recursive) | 2938.2850901146912 | 41.49298976885184 | 187.53457495851006 | 10.262257696693274 | 3.853918150119288 +array (union, explicit) | 2652.7701590784422 | 20.115477742596386 | 90.53420805998125 | 3.3695245226506927 | 42.615188490256784 +array (union, implicit) | 1327.4484296599144 | Failed | Failed | 2.2189349112426036 | 29.369108049311095 +ultimate union | 291.31451177845713 | Failed | Failed | 0.5079580088046055 | Failed ```mermaid pie title assertType (iterate) - object (simple) - "typescript-json": 348013.37613697164 - "typebox": 3489.016736401674 - "io-ts": 18859.619686800896 - "zod": 3632.1797427070123 - "class-validator": 201.980198019802 + "typescript-json": 357276.54232424684 + "typebox": 3544.761213001635 + "io-ts": 18484.288022984376 + "zod": 3758.995502248875 + "class-validator": 198.20948970456578 ``` ```mermaid pie title assertType (iterate) - object (hierarchical) - "typescript-json": 63650.42107149256 - "typebox": 884.4148840553659 - "io-ts": 4070.2494497432135 - "zod": 448.40455308826273 - "class-validator": 68.18181818181819 + "typescript-json": 65523.67841409691 + "typebox": 890.5419766206164 + "io-ts": 4183.383233532934 + "zod": 430.89725036179453 + "class-validator": 67.76859504132231 ``` ```mermaid pie title assertType (iterate) - object (recursive) - "typescript-json": 49955.79514824797 - "typebox": 402.22222222222223 - "io-ts": 1965.1205259313365 - "zod": 79.3443844291302 - "class-validator": 42.47594844799419 + "typescript-json": 48407.38047627704 + "typebox": 389.32126696832574 + "io-ts": 1854.5258620689656 + "zod": 77.62985186574161 + "class-validator": 43.96650171298059 ``` ```mermaid pie title assertType (iterate) - object (union, explicit) - "typescript-json": 7746.318114874815 - "typebox": 151.91218130311614 - "io-ts": 1332.9001113999257 - "zod": 37.49300503637381 - "class-validator": 117.83681214421253 + "typescript-json": 7256.667884545122 + "typebox": 156.50741350906094 + "io-ts": 1211.164219870263 + "zod": 36.25709577000549 + "class-validator": 110.20408163265307 ``` ```mermaid pie title assertType (iterate) - object (union, implicit) - "typescript-json": 7054.393305439331 + "typescript-json": 7077.808219178083 "typebox": 0 "io-ts": 0 - "zod": 19.509476031215165 - "class-validator": 78.14520598559025 + "zod": 20.92760180995475 + "class-validator": 77.10666421883606 ``` ```mermaid pie title assertType (iterate) - array (recursive) - "typescript-json": 3001.688555347092 - "typebox": 41.596402473299605 - "io-ts": 185.5612998522895 - "zod": 10.087801232953485 - "class-validator": 3.8917716827279465 + "typescript-json": 2938.2850901146912 + "typebox": 41.49298976885184 + "io-ts": 187.53457495851006 + "zod": 10.262257696693274 + "class-validator": 3.853918150119288 ``` ```mermaid pie title assertType (iterate) - array (union, explicit) - "typescript-json": 2590.7839177528913 - "typebox": 20.574606116774795 - "io-ts": 88.54454897620364 - "zod": 3.299725022914757 - "class-validator": 40.99107305520131 + "typescript-json": 2652.7701590784422 + "typebox": 20.115477742596386 + "io-ts": 90.53420805998125 + "zod": 3.3695245226506927 + "class-validator": 42.615188490256784 ``` ```mermaid pie title assertType (iterate) - array (union, implicit) - "typescript-json": 1192.8345626975765 + "typescript-json": 1327.4484296599144 "typebox": 0 "io-ts": 0 - "zod": 2.165283291230603 - "class-validator": 29.055690072639223 + "zod": 2.2189349112426036 + "class-validator": 29.369108049311095 ``` ```mermaid pie title assertType (iterate) - ultimate union - "typescript-json": 294.3192064923354 + "typescript-json": 291.31451177845713 "typebox": 0 "io-ts": 0 - "zod": 0.47930979389678857 + "zod": 0.5079580088046055 "class-validator": 0 ``` @@ -233,104 +233,104 @@ pie title assertType (iterate) - ultimate union ## assertType (throw) Components | typescript-json | typebox | io-ts | zod | class-validator ------------|-----------------|---------|-------|-----|----------------- -object (simple) | 547.9052823315118 | 28.05717310746427 | 126.33714496495759 | 32.76633840644584 | 2.2030475491096015 -object (hierarchical) | 355.01453488372096 | 8.513788635942996 | 37.291280148423006 | 4.690431519699812 | 0.7271405199054717 -object (recursive) | 54.626532887402455 | Failed | Failed | 0.35555555555555557 | 0.8898380494749956 -object (union, explicit) | 65.66297841465627 | 1.6432353478181485 | 10.895224260032686 | 0.3619254433586681 | 1.0907107798582076 -object (union, implicit) | 50.72067141032658 | Failed | Failed | 0.3539196602371262 | 0.9174311926605504 -array (recursive) | 14.443651925820257 | 0.35174111853675694 | 1.3232514177693762 | 0.15790304752881731 | 0.12758356723653994 -array (union, explicit) | 5.054151624548736 | 0.1764602082230457 | 0.7307270734380709 | 0.11884953648680771 | 0.3623188405797102 -array (union, implicit) | 2.0014556040756912 | Failed | Failed | 0.09389671361502347 | 0.34019391052900155 -ultimate union | 2.8439388553146108 | Failed | Failed | 0.024028064779662645 | Failed +object (simple) | 58166.51075771749 | 3251.285819250551 | 12674.599068804966 | 3422.123566407695 | 203.40236686390529 +object (hierarchical) | 37372.634643377 | 930.925339787749 | 3818.3503243744212 | 452.23289994347084 | 73.93715341959334 +object (recursive) | 5215.7943067033975 | Failed | Failed | 35.2485019386676 | 92.57544899092761 +object (union, explicit) | 6321.535481598872 | 166.85205784204672 | 1329.787234042553 | 36.55638822884299 | 132.20018885741266 +object (union, implicit) | 5246.078961600865 | Failed | Failed | 35.94536304816678 | 91.34088417975886 +array (recursive) | 2083.7075624214117 | 53.77307761247536 | 187.58206715438 | 16.47175094712568 | 13.728720483250962 +array (union, explicit) | 522.875816993464 | 18.10610175629187 | 74.487895716946 | 12.22792858889704 | 53.937432578209275 +array (union, implicit) | 200.43731778425652 | Failed | Failed | 10.476689366160294 | 35.48616039744499 +ultimate union | 310.445580715851 | Failed | Failed | 2.989357885926103 | Failed ```mermaid pie title assertType (throw) - object (simple) - "typescript-json": 547.9052823315118 - "typebox": 28.05717310746427 - "io-ts": 126.33714496495759 - "zod": 32.76633840644584 - "class-validator": 2.2030475491096015 + "typescript-json": 58166.51075771749 + "typebox": 3251.285819250551 + "io-ts": 12674.599068804966 + "zod": 3422.123566407695 + "class-validator": 203.40236686390529 ``` ```mermaid pie title assertType (throw) - object (hierarchical) - "typescript-json": 355.01453488372096 - "typebox": 8.513788635942996 - "io-ts": 37.291280148423006 - "zod": 4.690431519699812 - "class-validator": 0.7271405199054717 + "typescript-json": 37372.634643377 + "typebox": 930.925339787749 + "io-ts": 3818.3503243744212 + "zod": 452.23289994347084 + "class-validator": 73.93715341959334 ``` ```mermaid pie title assertType (throw) - object (recursive) - "typescript-json": 54.626532887402455 + "typescript-json": 5215.7943067033975 "typebox": 0 "io-ts": 0 - "zod": 0.35555555555555557 - "class-validator": 0.8898380494749956 + "zod": 35.2485019386676 + "class-validator": 92.57544899092761 ``` ```mermaid pie title assertType (throw) - object (union, explicit) - "typescript-json": 65.66297841465627 - "typebox": 1.6432353478181485 - "io-ts": 10.895224260032686 - "zod": 0.3619254433586681 - "class-validator": 1.0907107798582076 + "typescript-json": 6321.535481598872 + "typebox": 166.85205784204672 + "io-ts": 1329.787234042553 + "zod": 36.55638822884299 + "class-validator": 132.20018885741266 ``` ```mermaid pie title assertType (throw) - object (union, implicit) - "typescript-json": 50.72067141032658 + "typescript-json": 5246.078961600865 "typebox": 0 "io-ts": 0 - "zod": 0.3539196602371262 - "class-validator": 0.9174311926605504 + "zod": 35.94536304816678 + "class-validator": 91.34088417975886 ``` ```mermaid pie title assertType (throw) - array (recursive) - "typescript-json": 14.443651925820257 - "typebox": 0.35174111853675694 - "io-ts": 1.3232514177693762 - "zod": 0.15790304752881731 - "class-validator": 0.12758356723653994 + "typescript-json": 2083.7075624214117 + "typebox": 53.77307761247536 + "io-ts": 187.58206715438 + "zod": 16.47175094712568 + "class-validator": 13.728720483250962 ``` ```mermaid pie title assertType (throw) - array (union, explicit) - "typescript-json": 5.054151624548736 - "typebox": 0.1764602082230457 - "io-ts": 0.7307270734380709 - "zod": 0.11884953648680771 - "class-validator": 0.3623188405797102 + "typescript-json": 522.875816993464 + "typebox": 18.10610175629187 + "io-ts": 74.487895716946 + "zod": 12.22792858889704 + "class-validator": 53.937432578209275 ``` ```mermaid pie title assertType (throw) - array (union, implicit) - "typescript-json": 2.0014556040756912 + "typescript-json": 200.43731778425652 "typebox": 0 "io-ts": 0 - "zod": 0.09389671361502347 - "class-validator": 0.34019391052900155 + "zod": 10.476689366160294 + "class-validator": 35.48616039744499 ``` ```mermaid pie title assertType (throw) - ultimate union - "class-validator": 0 - "typescript-json": 2.8439388553146108 + "typescript-json": 310.445580715851 "typebox": 0 "io-ts": 0 - "zod": 0.024028064779662645 + "zod": 2.989357885926103 + "class-validator": 0 ``` @@ -341,103 +341,103 @@ pie title assertType (throw) - ultimate union ## validate Components | typescript-json | typebox | io-ts | zod | class-validator ------------|-----------------|---------|-------|-----|----------------- -object (simple) | 114805.12249443206 | 3209.9507927829413 | 16099.382369455361 | 3753.5066392369545 | 207.18540580789278 -object (hierarchical) | 35512.866980790146 | 890.1038819026792 | 3967.0391061452515 | 425.08584854509303 | 68.47521047708139 -object (recursive) | 26955.304254173403 | 377.13068181818187 | 1784.056886227545 | 79.42170484416073 | 43.357420789327406 -object (union, explicit) | 5786.855149623646 | 156.84463329022722 | 1201.800450112528 | 36.65207877461707 | 111.2743297833272 -object (union, implicit) | 4793.078586878154 | 145.44456641053785 | 364.84962406015035 | 19.45885841363973 | 77.63805358119191 -array (recursive) | 1669.8834668608888 | 41.61199625117151 | 182.92011019283746 | 9.928295642581357 | 3.9004457652303115 -array (union, explicit) | 2066.1790938280415 | 21.08662613981763 | 89.32296605348 | 3.280481137233461 | 39.642857142857146 -array (union, implicit) | 1170.9522965064727 | 13.92757660167131 | 60.18602954586905 | 2.2185246810870773 | 29.52098031934645 -ultimate union | 189.68820762933288 | Failed | Failed | 0.5003335557038026 | Failed +object (simple) | 106943.93032117584 | 3291.574279379158 | 13662.309368191722 | 3613.872200983069 | 203.4552471972064 +object (hierarchical) | 35617.8274990978 | 914.0062742203359 | 4105.263157894737 | 451.12781954887214 | 68.59671768393878 +object (recursive) | 30237.988826815643 | 411.21320082505156 | 1927.46970253397 | 81.35593220338984 | 43.50250976017848 +object (union, explicit) | 5805.194805194805 | 157.92379900607398 | 1294.1945118536494 | 37.64044943820225 | 115.06080449017774 +object (union, implicit) | 4880.653950953679 | 149.97180981018607 | 375 | 21.61547212741752 | 78.64554888039322 +array (recursive) | 1722.7027027027027 | 43.8496583143508 | 199.77103606182027 | 10.256410256410257 | 3.9223010833022034 +array (union, explicit) | 2078.0090497737556 | 21.074615530662616 | 92.41837299391256 | 3.362600410984495 | 43.65904365904366 +array (union, implicit) | 1123.9466292134832 | 14.095094906972374 | 65.77206577206576 | 2.213205459240133 | 29.50282280094701 +ultimate union | 194.30189347018228 | Failed | Failed | 0.5101173269852066 | Failed ```mermaid pie title validate - object (simple) - "typescript-json": 114805.12249443206 - "typebox": 3209.9507927829413 - "io-ts": 16099.382369455361 - "zod": 3753.5066392369545 - "class-validator": 207.18540580789278 + "typescript-json": 106943.93032117584 + "typebox": 3291.574279379158 + "io-ts": 13662.309368191722 + "zod": 3613.872200983069 + "class-validator": 203.4552471972064 ``` ```mermaid pie title validate - object (hierarchical) - "typescript-json": 35512.866980790146 - "typebox": 890.1038819026792 - "io-ts": 3967.0391061452515 - "zod": 425.08584854509303 - "class-validator": 68.47521047708139 + "typescript-json": 35617.8274990978 + "typebox": 914.0062742203359 + "io-ts": 4105.263157894737 + "zod": 451.12781954887214 + "class-validator": 68.59671768393878 ``` ```mermaid pie title validate - object (recursive) - "typescript-json": 26955.304254173403 - "typebox": 377.13068181818187 - "io-ts": 1784.056886227545 - "zod": 79.42170484416073 - "class-validator": 43.357420789327406 + "typescript-json": 30237.988826815643 + "typebox": 411.21320082505156 + "io-ts": 1927.46970253397 + "zod": 81.35593220338984 + "class-validator": 43.50250976017848 ``` ```mermaid pie title validate - object (union, explicit) - "typescript-json": 5786.855149623646 - "typebox": 156.84463329022722 - "io-ts": 1201.800450112528 - "zod": 36.65207877461707 - "class-validator": 111.2743297833272 + "typescript-json": 5805.194805194805 + "typebox": 157.92379900607398 + "io-ts": 1294.1945118536494 + "zod": 37.64044943820225 + "class-validator": 115.06080449017774 ``` ```mermaid pie title validate - object (union, implicit) - "typescript-json": 4793.078586878154 - "typebox": 145.44456641053785 - "io-ts": 364.84962406015035 - "zod": 19.45885841363973 - "class-validator": 77.63805358119191 + "typescript-json": 4880.653950953679 + "typebox": 149.97180981018607 + "io-ts": 375 + "zod": 21.61547212741752 + "class-validator": 78.64554888039322 ``` ```mermaid pie title validate - array (recursive) - "typescript-json": 1669.8834668608888 - "typebox": 41.61199625117151 - "io-ts": 182.92011019283746 - "zod": 9.928295642581357 - "class-validator": 3.9004457652303115 + "typescript-json": 1722.7027027027027 + "typebox": 43.8496583143508 + "io-ts": 199.77103606182027 + "zod": 10.256410256410257 + "class-validator": 3.9223010833022034 ``` ```mermaid pie title validate - array (union, explicit) - "typescript-json": 2066.1790938280415 - "typebox": 21.08662613981763 - "io-ts": 89.32296605348 - "zod": 3.280481137233461 - "class-validator": 39.642857142857146 + "typescript-json": 2078.0090497737556 + "typebox": 21.074615530662616 + "io-ts": 92.41837299391256 + "zod": 3.362600410984495 + "class-validator": 43.65904365904366 ``` ```mermaid pie title validate - array (union, implicit) - "typescript-json": 1170.9522965064727 - "typebox": 13.92757660167131 - "io-ts": 60.18602954586905 - "zod": 2.2185246810870773 - "class-validator": 29.52098031934645 + "typescript-json": 1123.9466292134832 + "typebox": 14.095094906972374 + "io-ts": 65.77206577206576 + "zod": 2.213205459240133 + "class-validator": 29.50282280094701 ``` ```mermaid pie title validate - ultimate union - "typescript-json": 189.68820762933288 + "typescript-json": 194.30189347018228 "typebox": 0 "io-ts": 0 - "zod": 0.5003335557038026 + "zod": 0.5101173269852066 "class-validator": 0 ``` @@ -449,77 +449,77 @@ pie title validate - ultimate union ## equals Components | typescript-json | typebox ------------|-----------------|--------- -object (simple) | 31308.826172928275 | 71034.11978221415 -object (hierarchical) | 9839.024390243902 | 21418.798665183538 -object (recursive) | 7610.890732059142 | 12940.91164884637 -object (union, explicit) | 3177.77387023035 | 3793.103448275862 -object (union, implicit) | 2094.8827292110873 | 2670.9141274238227 -array (recursive) | 589.0257558790594 | 1218.9208895370034 -array (union, explicit) | 849.1183421196145 | 774.1761210156671 -array (union, implicit) | 521.5501629844259 | 486.48648648648646 -ultimate union | 340.0679420704452 | 229.70223783983727 +object (simple) | 31575.45813869925 | 68675.86206896552 +object (hierarchical) | 9931.129985228952 | 20188.76727076978 +object (recursive) | 7806.710158434296 | 12467.991169977926 +object (union, explicit) | 3195.5347497299244 | 3560.9007164790173 +object (union, implicit) | 2083.6617699749195 | 2543.9006836991725 +array (recursive) | 601.4533258803801 | 1195.9680348710497 +array (union, explicit) | 849.4297933000713 | 822.3853211009175 +array (union, implicit) | 528.8192501398993 | 487.51991502920873 +ultimate union | 356.0732113144759 | 233.3033303330333 ```mermaid pie title equals - object (simple) - "typescript-json": 31308.826172928275 - "typebox": 71034.11978221415 + "typescript-json": 31575.45813869925 + "typebox": 68675.86206896552 ``` ```mermaid pie title equals - object (hierarchical) - "typescript-json": 9839.024390243902 - "typebox": 21418.798665183538 + "typescript-json": 9931.129985228952 + "typebox": 20188.76727076978 ``` ```mermaid pie title equals - object (recursive) - "typescript-json": 7610.890732059142 - "typebox": 12940.91164884637 + "typescript-json": 7806.710158434296 + "typebox": 12467.991169977926 ``` ```mermaid pie title equals - object (union, explicit) - "typescript-json": 3177.77387023035 - "typebox": 3793.103448275862 + "typescript-json": 3195.5347497299244 + "typebox": 3560.9007164790173 ``` ```mermaid pie title equals - object (union, implicit) - "typescript-json": 2094.8827292110873 - "typebox": 2670.9141274238227 + "typescript-json": 2083.6617699749195 + "typebox": 2543.9006836991725 ``` ```mermaid pie title equals - array (recursive) - "typescript-json": 589.0257558790594 - "typebox": 1218.9208895370034 + "typescript-json": 601.4533258803801 + "typebox": 1195.9680348710497 ``` ```mermaid pie title equals - array (union, explicit) - "typescript-json": 849.1183421196145 - "typebox": 774.1761210156671 + "typescript-json": 849.4297933000713 + "typebox": 822.3853211009175 ``` ```mermaid pie title equals - array (union, implicit) - "typescript-json": 521.5501629844259 - "typebox": 486.48648648648646 + "typescript-json": 528.8192501398993 + "typebox": 487.51991502920873 ``` ```mermaid pie title equals - ultimate union - "typescript-json": 340.0679420704452 - "typebox": 229.70223783983727 + "typescript-json": 356.0732113144759 + "typebox": 233.3033303330333 ``` @@ -530,77 +530,77 @@ pie title equals - ultimate union ## assertEquals (iterate) Components | typescript-json | typebox ------------|-----------------|--------- -object (simple) | 34915.715062533985 | 2815.0569773958528 -object (hierarchical) | 8682.493657122146 | 765.5362053162236 -object (recursive) | 7280.610346110904 | 353.900975243811 -object (union, explicit) | 2663.0928584408503 | 122.68907563025209 -object (union, implicit) | 2044.843049327354 | 83.93956351426974 -array (recursive) | 610.3825136612022 | 36.940298507462686 -array (union, explicit) | 467.12227558182497 | 17.014270032930845 -array (union, implicit) | 300.65958226456576 | 7.220885021292354 -ultimate union | 233.03571428571428 | 4.4028618602091365 +object (simple) | 36501.19727389942 | 2865.342163355408 +object (hierarchical) | 8845.366379310346 | 790.2656511239086 +object (recursive) | 7287.5299318474845 | 360.15610481323176 +object (union, explicit) | 2845.1790633608816 | 123.94840157038698 +object (union, implicit) | 2097.2477064220184 | 87.14392803598201 +array (recursive) | 593.6547768417279 | 37.08634461772537 +array (union, explicit) | 467.57553426676486 | 17.56373937677054 +array (union, implicit) | 288.1113887897179 | 7.876969242310578 +ultimate union | 235.93073593073595 | 4.539436353319463 ```mermaid pie title assertEquals (iterate) - object (simple) - "typescript-json": 34915.715062533985 - "typebox": 2815.0569773958528 + "typescript-json": 36501.19727389942 + "typebox": 2865.342163355408 ``` ```mermaid pie title assertEquals (iterate) - object (hierarchical) - "typescript-json": 8682.493657122146 - "typebox": 765.5362053162236 + "typescript-json": 8845.366379310346 + "typebox": 790.2656511239086 ``` ```mermaid pie title assertEquals (iterate) - object (recursive) - "typescript-json": 7280.610346110904 - "typebox": 353.900975243811 + "typescript-json": 7287.5299318474845 + "typebox": 360.15610481323176 ``` ```mermaid pie title assertEquals (iterate) - object (union, explicit) - "typescript-json": 2663.0928584408503 - "typebox": 122.68907563025209 + "typescript-json": 2845.1790633608816 + "typebox": 123.94840157038698 ``` ```mermaid pie title assertEquals (iterate) - object (union, implicit) - "typescript-json": 2044.843049327354 - "typebox": 83.93956351426974 + "typescript-json": 2097.2477064220184 + "typebox": 87.14392803598201 ``` ```mermaid pie title assertEquals (iterate) - array (recursive) - "typescript-json": 610.3825136612022 - "typebox": 36.940298507462686 + "typescript-json": 593.6547768417279 + "typebox": 37.08634461772537 ``` ```mermaid pie title assertEquals (iterate) - array (union, explicit) - "typescript-json": 467.12227558182497 - "typebox": 17.014270032930845 + "typescript-json": 467.57553426676486 + "typebox": 17.56373937677054 ``` ```mermaid pie title assertEquals (iterate) - array (union, implicit) - "typescript-json": 300.65958226456576 - "typebox": 7.220885021292354 + "typescript-json": 288.1113887897179 + "typebox": 7.876969242310578 ``` ```mermaid pie title assertEquals (iterate) - ultimate union - "typescript-json": 233.03571428571428 - "typebox": 4.4028618602091365 + "typescript-json": 235.93073593073595 + "typebox": 4.539436353319463 ``` @@ -611,77 +611,77 @@ pie title assertEquals (iterate) - ultimate union ## assertEquals (throw) Components | typescript-json | typebox ------------|-----------------|--------- -object (simple) | 203.04475421863538 | 24.18312719217279 -object (hierarchical) | 72.87015538489015 | 6.910347335879251 -object (recursive) | 58.80191106210952 | 3.3076074972436604 -object (union, explicit) | 24.757804090419807 | 1.274117218784128 -object (union, implicit) | 19.033674963396777 | 0.9172628875435701 -array (recursive) | 5.89101620029455 | 0.3660992128866923 -array (union, explicit) | 2.553812477198103 | 0.17325017325017325 -array (union, implicit) | 1.265365148228489 | 0.1504890895410083 -ultimate union | 2.291960507757405 | 0.12987012987012986 +object (simple) | 20498.511904761905 | 2624.8632883703976 +object (hierarchical) | 7513.189012188466 | 747.6635514018692 +object (recursive) | 5817.325117796303 | 355.00747384155454 +object (union, explicit) | 2636.8796923640357 | 127.73722627737226 +object (union, implicit) | 1915.9911569638912 | 92.18289085545722 +array (recursive) | 588.9931897662433 | 36.90717844620779 +array (union, explicit) | 259.69207939157855 | 17.787264318747777 +array (union, implicit) | 127.43491716730384 | 15.976993129892952 +ultimate union | 234.74178403755866 | 13.66867140513942 ```mermaid pie title assertEquals (throw) - object (simple) - "typescript-json": 203.04475421863538 - "typebox": 24.18312719217279 + "typescript-json": 20498.511904761905 + "typebox": 2624.8632883703976 ``` ```mermaid pie title assertEquals (throw) - object (hierarchical) - "typescript-json": 72.87015538489015 - "typebox": 6.910347335879251 + "typescript-json": 7513.189012188466 + "typebox": 747.6635514018692 ``` ```mermaid pie title assertEquals (throw) - object (recursive) - "typescript-json": 58.80191106210952 - "typebox": 3.3076074972436604 + "typescript-json": 5817.325117796303 + "typebox": 355.00747384155454 ``` ```mermaid pie title assertEquals (throw) - object (union, explicit) - "typescript-json": 24.757804090419807 - "typebox": 1.274117218784128 + "typescript-json": 2636.8796923640357 + "typebox": 127.73722627737226 ``` ```mermaid pie title assertEquals (throw) - object (union, implicit) - "typescript-json": 19.033674963396777 - "typebox": 0.9172628875435701 + "typescript-json": 1915.9911569638912 + "typebox": 92.18289085545722 ``` ```mermaid pie title assertEquals (throw) - array (recursive) - "typescript-json": 5.89101620029455 - "typebox": 0.3660992128866923 + "typescript-json": 588.9931897662433 + "typebox": 36.90717844620779 ``` ```mermaid pie title assertEquals (throw) - array (union, explicit) - "typescript-json": 2.553812477198103 - "typebox": 0.17325017325017325 + "typescript-json": 259.69207939157855 + "typebox": 17.787264318747777 ``` ```mermaid pie title assertEquals (throw) - array (union, implicit) - "typescript-json": 1.265365148228489 - "typebox": 0.1504890895410083 + "typescript-json": 127.43491716730384 + "typebox": 15.976993129892952 ``` ```mermaid pie title assertEquals (throw) - ultimate union - "typescript-json": 2.291960507757405 - "typebox": 0.12987012987012986 + "typescript-json": 234.74178403755866 + "typebox": 13.66867140513942 ``` @@ -692,77 +692,77 @@ pie title assertEquals (throw) - ultimate union ## validateEquals Components | typescript-json | typebox ------------|-----------------|--------- -object (simple) | 20606.446776611694 | 2673.7938596491226 -object (hierarchical) | 7419.65734896303 | 734.2619392185239 -object (recursive) | 4890.133333333333 | 346.045989904655 -object (union, explicit) | 1690.7344833718655 | 119.77715877437328 -object (union, implicit) | 1253.1711555169418 | 85.82872401296967 -array (recursive) | 390.88983050847463 | 34.97267759562841 -array (union, explicit) | 396.26704953338117 | 17.308766052484646 -array (union, implicit) | 261.94753862738054 | 7.859281437125748 -ultimate union | 160.16537839295347 | 4.53771979580261 +object (simple) | 18085.86387434555 | 2568.4566145092463 +object (hierarchical) | 7656.594897774561 | 758.4487534626039 +object (recursive) | 5151.509639869043 | 351.2747875354108 +object (union, explicit) | 1819.006940736786 | 121.31941856131198 +object (union, implicit) | 1375.4768392370572 | 87.83783783783782 +array (recursive) | 412.7803488786044 | 36.91783415372965 +array (union, explicit) | 408.66359447004606 | 17.667173252279635 +array (union, implicit) | 229.44034551016733 | 7.336343115124153 +ultimate union | 156.66901905434017 | 4.546315590073878 ```mermaid pie title validateEquals - object (simple) - "typescript-json": 20606.446776611694 - "typebox": 2673.7938596491226 + "typescript-json": 18085.86387434555 + "typebox": 2568.4566145092463 ``` ```mermaid pie title validateEquals - object (hierarchical) - "typescript-json": 7419.65734896303 - "typebox": 734.2619392185239 + "typescript-json": 7656.594897774561 + "typebox": 758.4487534626039 ``` ```mermaid pie title validateEquals - object (recursive) - "typescript-json": 4890.133333333333 - "typebox": 346.045989904655 + "typescript-json": 5151.509639869043 + "typebox": 351.2747875354108 ``` ```mermaid pie title validateEquals - object (union, explicit) - "typescript-json": 1690.7344833718655 - "typebox": 119.77715877437328 + "typescript-json": 1819.006940736786 + "typebox": 121.31941856131198 ``` ```mermaid pie title validateEquals - object (union, implicit) - "typescript-json": 1253.1711555169418 - "typebox": 85.82872401296967 + "typescript-json": 1375.4768392370572 + "typebox": 87.83783783783782 ``` ```mermaid pie title validateEquals - array (recursive) - "typescript-json": 390.88983050847463 - "typebox": 34.97267759562841 + "typescript-json": 412.7803488786044 + "typebox": 36.91783415372965 ``` ```mermaid pie title validateEquals - array (union, explicit) - "typescript-json": 396.26704953338117 - "typebox": 17.308766052484646 + "typescript-json": 408.66359447004606 + "typebox": 17.667173252279635 ``` ```mermaid pie title validateEquals - array (union, implicit) - "typescript-json": 261.94753862738054 - "typebox": 7.859281437125748 + "typescript-json": 229.44034551016733 + "typebox": 7.336343115124153 ``` ```mermaid pie title validateEquals - ultimate union - "typescript-json": 160.16537839295347 - "typebox": 4.53771979580261 + "typescript-json": 156.66901905434017 + "typebox": 4.546315590073878 ``` @@ -773,68 +773,68 @@ pie title validateEquals - ultimate union ## optimizer Components | typescript-json | typebox | ajv ------------|-----------------|---------|----- -object (hierarchical) | 149557.8034682081 | 214.13991464093522 | 5.147319843805467 -object (recursive) | 90890.53633534687 | 882.5602968460112 | 9.461966604823749 -object (union) | 21076.073401033314 | 110.14115898959881 | 4.6720239207624745 -array (hierarchical) | 3201.768933112217 | 1051.5813253012047 | 6.793977230995226 -array (recursive) | 7887.717351091381 | 887.2025482480794 | 9.88990483299123 -array (union) | 4051.7921146953404 | 268.88888888888886 | 6.743211226535447 -ultimate union | 652.9134998190373 | 13.412816691505215 | 0.9243852837862822 +object (hierarchical) | 148270.88924673464 | 199.67822667143366 | 5.213014560488945 +object (recursive) | 90090.59736509655 | 880.1498127340824 | 9.506398537477148 +object (union) | 22016.766678432756 | 104.46947674418605 | 4.658963846440552 +array (hierarchical) | 4959.168925022584 | 1013.0402384500744 | 6.882440476190475 +array (recursive) | 7755.323122898767 | 890.625 | 9.774990778310586 +array (union) | 4474.274163910327 | 268.9949842095486 | 6.622516556291391 +ultimate union | 659.3189964157706 | 12.594458438287154 | 0.9114108640174992 ```mermaid pie title optimizer - object (hierarchical) - "typescript-json": 149557.8034682081 - "typebox": 214.13991464093522 - "ajv": 5.147319843805467 + "typescript-json": 148270.88924673464 + "typebox": 199.67822667143366 + "ajv": 5.213014560488945 ``` ```mermaid pie title optimizer - object (recursive) - "typescript-json": 90890.53633534687 - "typebox": 882.5602968460112 - "ajv": 9.461966604823749 + "typescript-json": 90090.59736509655 + "typebox": 880.1498127340824 + "ajv": 9.506398537477148 ``` ```mermaid pie title optimizer - object (union) - "typescript-json": 21076.073401033314 - "typebox": 110.14115898959881 - "ajv": 4.6720239207624745 + "typescript-json": 22016.766678432756 + "typebox": 104.46947674418605 + "ajv": 4.658963846440552 ``` ```mermaid pie title optimizer - array (hierarchical) - "typescript-json": 3201.768933112217 - "typebox": 1051.5813253012047 - "ajv": 6.793977230995226 + "typescript-json": 4959.168925022584 + "typebox": 1013.0402384500744 + "ajv": 6.882440476190475 ``` ```mermaid pie title optimizer - array (recursive) - "typescript-json": 7887.717351091381 - "typebox": 887.2025482480794 - "ajv": 9.88990483299123 + "typescript-json": 7755.323122898767 + "typebox": 890.625 + "ajv": 9.774990778310586 ``` ```mermaid pie title optimizer - array (union) - "typescript-json": 4051.7921146953404 - "typebox": 268.88888888888886 - "ajv": 6.743211226535447 + "typescript-json": 4474.274163910327 + "typebox": 268.9949842095486 + "ajv": 6.622516556291391 ``` ```mermaid pie title optimizer - ultimate union - "typescript-json": 652.9134998190373 - "typebox": 13.412816691505215 - "ajv": 0.9243852837862822 + "typescript-json": 659.3189964157706 + "typebox": 12.594458438287154 + "ajv": 0.9114108640174992 ``` @@ -845,82 +845,82 @@ pie title optimizer - ultimate union ## stringify Components | TSON.stringify() | TSON.assertStringify() | TSON.isStringify() | JSON.stringify() | fast-json-stringify ------------|------------------|------------------------|--------------------|------------------|--------------------- -object (simple) | 46183.618843683085 | 40176.08095676173 | 42003.807106598986 | 6773.205561818865 | 31949.534024969227 -object (hierarchical) | 5636.006730229949 | 4738.525478857969 | 5124.883677647496 | 1667.5809105869446 | 4921.911214120164 -object (recursive) | 5425.819229384228 | 5444.989620683147 | 5404.796249549225 | 1286.6407263294423 | 1319.6877380045698 -object (union) | 1596.9851071558298 | 1265.8158614402917 | 1443.2148040638608 | 672.1281631166939 | 1457.0151921358356 -array (hierarchical) | 80.80992338562568 | 73.0837789661319 | 76.73310989592521 | 38.18350324374421 | 108.54158895934353 -array (recursive) | 270.33279943050366 | 249.31954273271637 | 271.25581395348837 | 133.50687988099665 | 132.32304564775458 -array (union) | 346.1607624527963 | 307.60849827492285 | 312.36673773987206 | 276.5445800961894 | 244.9609587797349 +object (simple) | 51396.80522780904 | 43450.99818511797 | 45144.91695564884 | 6654.538772510106 | 33715.23668639053 +object (hierarchical) | 5693.715341959334 | 4956.586826347305 | 5217.660292463443 | 1705.9260635333458 | 4975.081847944707 +object (recursive) | 5779.796511627907 | 5510.416666666666 | 5543.596237337193 | 1317.6136363636363 | 1315.4908265557026 +object (union) | 1575.6016902443507 | 1233.526430123099 | 1403.281052821345 | 685.7089342573515 | 1454.4162075706415 +array (hierarchical) | 151.03223469757333 | 138.89908256880733 | 146.99413489736068 | 70.38068709377902 | 210.63171308938647 +array (recursive) | 278.74246024492777 | 253.60862415494245 | 273.2827254212183 | 131.641409530765 | 134.15545590433481 +array (union) | 368.0881821467293 | 316.1290322580645 | 320.3125 | 281.0760667903525 | 245.04147133068878 ```mermaid pie title stringify - object (simple) - "TSON.stringify()": 46183.618843683085 - "TSON.assertStringify()": 40176.08095676173 - "TSON.isStringify()": 42003.807106598986 - "JSON.stringify()": 6773.205561818865 - "fast-json-stringify": 31949.534024969227 + "TSON.stringify()": 51396.80522780904 + "TSON.assertStringify()": 43450.99818511797 + "TSON.isStringify()": 45144.91695564884 + "JSON.stringify()": 6654.538772510106 + "fast-json-stringify": 33715.23668639053 ``` ```mermaid pie title stringify - object (hierarchical) - "TSON.stringify()": 5636.006730229949 - "TSON.assertStringify()": 4738.525478857969 - "TSON.isStringify()": 5124.883677647496 - "JSON.stringify()": 1667.5809105869446 - "fast-json-stringify": 4921.911214120164 + "TSON.stringify()": 5693.715341959334 + "TSON.assertStringify()": 4956.586826347305 + "TSON.isStringify()": 5217.660292463443 + "JSON.stringify()": 1705.9260635333458 + "fast-json-stringify": 4975.081847944707 ``` ```mermaid pie title stringify - object (recursive) - "TSON.stringify()": 5425.819229384228 - "TSON.assertStringify()": 5444.989620683147 - "TSON.isStringify()": 5404.796249549225 - "JSON.stringify()": 1286.6407263294423 - "fast-json-stringify": 1319.6877380045698 + "TSON.stringify()": 5779.796511627907 + "TSON.assertStringify()": 5510.416666666666 + "TSON.isStringify()": 5543.596237337193 + "JSON.stringify()": 1317.6136363636363 + "fast-json-stringify": 1315.4908265557026 ``` ```mermaid pie title stringify - object (union) - "TSON.stringify()": 1596.9851071558298 - "TSON.assertStringify()": 1265.8158614402917 - "TSON.isStringify()": 1443.2148040638608 - "JSON.stringify()": 672.1281631166939 - "fast-json-stringify": 1457.0151921358356 + "TSON.stringify()": 1575.6016902443507 + "TSON.assertStringify()": 1233.526430123099 + "TSON.isStringify()": 1403.281052821345 + "JSON.stringify()": 685.7089342573515 + "fast-json-stringify": 1454.4162075706415 ``` ```mermaid pie title stringify - array (hierarchical) - "TSON.stringify()": 80.80992338562568 - "TSON.assertStringify()": 73.0837789661319 - "TSON.isStringify()": 76.73310989592521 - "JSON.stringify()": 38.18350324374421 - "fast-json-stringify": 108.54158895934353 + "TSON.stringify()": 151.03223469757333 + "TSON.assertStringify()": 138.89908256880733 + "TSON.isStringify()": 146.99413489736068 + "JSON.stringify()": 70.38068709377902 + "fast-json-stringify": 210.63171308938647 ``` ```mermaid pie title stringify - array (recursive) - "TSON.stringify()": 270.33279943050366 - "TSON.assertStringify()": 249.31954273271637 - "TSON.isStringify()": 271.25581395348837 - "JSON.stringify()": 133.50687988099665 - "fast-json-stringify": 132.32304564775458 + "TSON.stringify()": 278.74246024492777 + "TSON.assertStringify()": 253.60862415494245 + "TSON.isStringify()": 273.2827254212183 + "JSON.stringify()": 131.641409530765 + "fast-json-stringify": 134.15545590433481 ``` ```mermaid pie title stringify - array (union) - "TSON.stringify()": 346.1607624527963 - "TSON.assertStringify()": 307.60849827492285 - "TSON.isStringify()": 312.36673773987206 - "JSON.stringify()": 276.5445800961894 - "fast-json-stringify": 244.9609587797349 + "TSON.stringify()": 368.0881821467293 + "TSON.assertStringify()": 316.1290322580645 + "TSON.isStringify()": 320.3125 + "JSON.stringify()": 281.0760667903525 + "fast-json-stringify": 245.04147133068878 ``` @@ -931,4 +931,4 @@ pie title stringify - array (union) -> Total elapsed time: 1,764,531 ms +> Total elapsed time: 1,743,954 ms diff --git a/benchmark/results/charts.xlsx b/benchmark/results/charts.xlsx index 34c2dab097..1517848447 100644 Binary files a/benchmark/results/charts.xlsx and b/benchmark/results/charts.xlsx differ