Merged
Conversation
Contributor
Benchmarks results:> root@ benchmarks:container:cjs /home/runner/work/monorepo/monorepo
> pnpm run --filter "@inversifyjs/container-benchmarks" benchmarks:run:cjs
> @inversifyjs/container-benchmarks@ benchmarks:run:cjs /home/runner/work/monorepo/monorepo/packages/container/tools/container-benchmarks
> ./bin/run-cjs.cjs
[CJS] Running benchmarks...
Get service in singleton scope
┌─────────┬────────────────────┬──────────────────┬──────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼────────────────────┼──────────────────┼──────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '325.71 ± 0.37%' │ '289.00 ± 57.00' │ '3423770 ± 0.03%' │ '3460208 ± 813297' │ 3070175 │
│ 1 │ 'inversify6' │ '1086.7 ± 1.25%' │ '1007.0 ± 76.00' │ '971100 ± 0.03%' │ '993049 ± 77298' │ 920185 │
│ 2 │ 'inversify7' │ '356.41 ± 1.06%' │ '319.00 ± 64.00' │ '3134679 ± 0.03%' │ '3134796 ± 741173' │ 2805766 │
│ 3 │ 'NestJS' │ '387.34 ± 8.91%' │ '295.00 ± 26.00' │ '3058267 ± 0.03%' │ '3389831 ± 327642' │ 2581715 │
│ 4 │ 'tsyringe' │ '382.39 ± 0.43%' │ '336.00 ± 66.00' │ '2922739 ± 0.03%' │ '2976190 ± 650609' │ 2615115 │
└─────────┴────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversify6 Speedup: 3.526x
inversifyCurrent vs inversify7 Speedup: 1.092x
inversifyCurrent vs NestJS Speedup: 1.120x
inversifyCurrent vs tsyringe Speedup: 1.171x
Get service in transient scope
┌─────────┬────────────────────┬──────────────────┬───────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼────────────────────┼──────────────────┼───────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '541.47 ± 1.70%' │ '495.00 ± 66.00' │ '2011027 ± 0.03%' │ '2020202 ± 284091' │ 1846839 │
│ 1 │ 'inversify6' │ '5559.7 ± 0.35%' │ '5330.0 ± 181.00' │ '183513 ± 0.04%' │ '187617 ± 6458' │ 179867 │
│ 2 │ 'inversify7' │ '620.23 ± 0.34%' │ '577.00 ± 68.00' │ '1705824 ± 0.03%' │ '1733102 ± 217951' │ 1612316 │
│ 3 │ 'NestJS' │ '9506.9 ± 2.57%' │ '8327.0 ± 429.00' │ '117323 ± 0.07%' │ '120091 ± 6251' │ 105188 │
│ 4 │ 'tsyringe' │ '531.30 ± 0.13%' │ '487.00 ± 63.00' │ '2016114 ± 0.03%' │ '2053388 ± 261427' │ 1882171 │
└─────────┴────────────────────┴──────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversify6 Speedup: 10.959x
inversifyCurrent vs inversify7 Speedup: 1.179x
inversifyCurrent vs NestJS Speedup: 17.141x
inversifyCurrent vs tsyringe Speedup: 0.997x
Get complex service in singleton scope
┌─────────┬────────────────────┬──────────────────┬──────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼────────────────────┼──────────────────┼──────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '339.22 ± 0.12%' │ '299.00 ± 55.00' │ '3260341 ± 0.03%' │ '3344482 ± 720559' │ 2947964 │
│ 1 │ 'inversify6' │ '1111.2 ± 9.29%' │ '996.00 ± 78.00' │ '986018 ± 0.03%' │ '1004016 ± 80583' │ 899916 │
│ 2 │ 'inversify7' │ '382.37 ± 2.66%' │ '345.00 ± 77.00' │ '2936174 ± 0.03%' │ '2898551 ± 710367' │ 2615246 │
│ 3 │ 'NestJS' │ '416.40 ± 4.35%' │ '357.00 ± 63.00' │ '2714781 ± 0.03%' │ '2801120 ± 578898' │ 2401510 │
│ 4 │ 'tsyringe' │ '408.51 ± 0.38%' │ '366.00 ± 79.00' │ '2734445 ± 0.03%' │ '2732240 ± 601093' │ 2447916 │
└─────────┴────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversify6 Speedup: 3.307x
inversifyCurrent vs inversify7 Speedup: 1.110x
inversifyCurrent vs NestJS Speedup: 1.201x
inversifyCurrent vs tsyringe Speedup: 1.192x
Get complex service in transient scope
┌─────────┬────────────────────┬───────────────────┬───────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼────────────────────┼───────────────────┼───────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '207076 ± 0.44%' │ '199639 ± 4492.0' │ '4884 ± 0.22%' │ '5009 ± 114' │ 4830 │
│ 1 │ 'inversify6' │ '5664394 ± 1.11%' │ '5535346 ± 57818' │ '177 ± 0.83%' │ '181 ± 2' │ 177 │
│ 2 │ 'inversify7' │ '274925 ± 0.40%' │ '265724 ± 3736.5' │ '3665 ± 0.22%' │ '3763 ± 53' │ 3638 │
│ 3 │ 'NestJS' │ '70060 ± 2.03%' │ '62728 ± 2094.5' │ '15413 ± 0.21%' │ '15942 ± 535' │ 14274 │
│ 4 │ 'tsyringe' │ '217827 ± 0.55%' │ '207309 ± 2971.0' │ '4652 ± 0.24%' │ '4824 ± 70' │ 4591 │
└─────────┴────────────────────┴───────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversify6 Speedup: 27.555x
inversifyCurrent vs inversify7 Speedup: 1.333x
inversifyCurrent vs NestJS Speedup: 0.317x
inversifyCurrent vs tsyringe Speedup: 1.050x> root@ benchmarks:container:esm /home/runner/work/monorepo/monorepo
> pnpm run --filter "@inversifyjs/container-benchmarks" benchmarks:run:esm
> @inversifyjs/container-benchmarks@ benchmarks:run:esm /home/runner/work/monorepo/monorepo/packages/container/tools/container-benchmarks
> ./bin/run-esm.mjs
[ESM] Running benchmarks...
Get service in singleton scope
┌─────────┬────────────────────┬───────────────────┬──────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼────────────────────┼───────────────────┼──────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '335.17 ± 0.97%' │ '291.00 ± 57.00' │ '3386471 ± 0.03%' │ '3436426 ± 790923' │ 2983573 │
│ 1 │ 'inversify6' │ '1140.8 ± 11.50%' │ '967.00 ± 65.00' │ '1004631 ± 0.03%' │ '1034126 ± 70846' │ 876549 │
│ 2 │ 'inversify7' │ '348.97 ± 1.15%' │ '323.00 ± 75.00' │ '3192758 ± 0.03%' │ '3095975 ± 737485' │ 2865567 │
│ 3 │ 'NestJS' │ '387.88 ± 1.20%' │ '332.00 ± 53.00' │ '2899604 ± 0.03%' │ '3012048 ± 548994' │ 2578087 │
│ 4 │ 'tsyringe' │ '379.16 ± 1.09%' │ '333.00 ± 72.00' │ '2983817 ± 0.03%' │ '3003003 ± 660001' │ 2637429 │
└─────────┴────────────────────┴───────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversify6 Speedup: 3.371x
inversifyCurrent vs inversify7 Speedup: 1.061x
inversifyCurrent vs NestJS Speedup: 1.168x
inversifyCurrent vs tsyringe Speedup: 1.135x
Get service in transient scope
┌─────────┬────────────────────┬──────────────────┬───────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼────────────────────┼──────────────────┼───────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '553.70 ± 0.36%' │ '512.00 ± 66.00' │ '1930126 ± 0.03%' │ '1953125 ± 249518' │ 1806025 │
│ 1 │ 'inversify6' │ '5648.7 ± 0.32%' │ '5436.0 ± 221.00' │ '180880 ± 0.04%' │ '183959 ± 7539' │ 177033 │
│ 2 │ 'inversify7' │ '561.76 ± 0.41%' │ '514.00 ± 66.00' │ '1910268 ± 0.03%' │ '1945525 ± 241948' │ 1780132 │
│ 3 │ 'NestJS' │ '10483 ± 6.97%' │ '8776.0 ± 391.00' │ '111439 ± 0.07%' │ '113947 ± 5115' │ 95394 │
│ 4 │ 'tsyringe' │ '525.85 ± 0.14%' │ '490.00 ± 59.00' │ '2013643 ± 0.03%' │ '2040816 ± 239015' │ 1901680 │
└─────────┴────────────────────┴──────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversify6 Speedup: 10.671x
inversifyCurrent vs inversify7 Speedup: 1.010x
inversifyCurrent vs NestJS Speedup: 17.320x
inversifyCurrent vs tsyringe Speedup: 0.959x
Get complex service in singleton scope
┌─────────┬────────────────────┬──────────────────┬──────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼────────────────────┼──────────────────┼──────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '374.85 ± 1.23%' │ '339.00 ± 81.00' │ '2993514 ± 0.03%' │ '2949852 ± 682279' │ 2667765 │
│ 1 │ 'inversify6' │ '1127.3 ± 7.52%' │ '990.00 ± 71.00' │ '977845 ± 0.03%' │ '1010101 ± 74498' │ 887049 │
│ 2 │ 'inversify7' │ '377.10 ± 0.25%' │ '342.00 ± 83.00' │ '2969670 ± 0.03%' │ '2923977 ± 686840' │ 2651785 │
│ 3 │ 'NestJS' │ '382.47 ± 0.14%' │ '324.00 ± 34.00' │ '2835257 ± 0.03%' │ '3086420 ± 354179' │ 2614603 │
│ 4 │ 'tsyringe' │ '378.56 ± 0.48%' │ '336.00 ± 68.00' │ '2962260 ± 0.03%' │ '2976190 ± 620932' │ 2641599 │
└─────────┴────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversify6 Speedup: 3.061x
inversifyCurrent vs inversify7 Speedup: 1.008x
inversifyCurrent vs NestJS Speedup: 1.056x
inversifyCurrent vs tsyringe Speedup: 1.011x
Get complex service in transient scope
┌─────────┬────────────────────┬───────────────────┬───────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼────────────────────┼───────────────────┼───────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '203080 ± 0.37%' │ '197117 ± 2368.0' │ '4962 ± 0.17%' │ '5073 ± 62' │ 4925 │
│ 1 │ 'inversify6' │ '5335786 ± 0.76%' │ '5222795 ± 46258' │ '188 ± 0.68%' │ '191 ± 2' │ 188 │
│ 2 │ 'inversify7' │ '205882 ± 0.41%' │ '198994 ± 2965.0' │ '4902 ± 0.19%' │ '5025 ± 75' │ 4858 │
│ 3 │ 'NestJS' │ '68618 ± 2.00%' │ '63372 ± 1645.0' │ '15488 ± 0.13%' │ '15780 ± 413' │ 14574 │
│ 4 │ 'tsyringe' │ '214438 ± 0.44%' │ '205100 ± 2686.0' │ '4715 ± 0.22%' │ '4876 ± 64' │ 4664 │
└─────────┴────────────────────┴───────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversify6 Speedup: 26.407x
inversifyCurrent vs inversify7 Speedup: 1.012x
inversifyCurrent vs NestJS Speedup: 0.320x
inversifyCurrent vs tsyringe Speedup: 1.052x |
Contributor
Benchmarks results:> root@ benchmarks:http:cjs:low /home/runner/work/monorepo/monorepo
> pnpm run --filter "@inversifyjs/http-benchmarks" benchmarks:run:cjs:low
> @inversifyjs/http-benchmarks@ benchmarks:run:cjs:low /home/runner/work/monorepo/monorepo/packages/framework/http/tools/http-benchmarks
> BUILD_TARGET=cjs VUS=128 ./bin/run-cjs.cjs
[CJS] Running benchmarks...
Express Basic Get Request
┌─────────┬───────────────────────────┬──────────────────┬──────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ms) │ Latency med (ms) │ Throughput avg (req/s) │ Samples │
├─────────┼───────────────────────────┼──────────────────┼──────────────────┼────────────────────────┼─────────┤
│ 0 │ 'currentInversifyExpress' │ '7.272' │ '7.001' │ '8703.339' │ 87144 │
│ 1 │ 'express' │ '6.624' │ '6.329' │ '9553.349' │ 95651 │
│ 2 │ 'NestJSExpress' │ '7.158' │ '6.928' │ '8846.957' │ 88574 │
└─────────┴───────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴─────────┘
currentInversifyExpress vs express Speedup: 0.911x
currentInversifyExpress vs NestJSExpress Speedup: 0.984x
Express v4 Basic Get Request
┌─────────┬────────────────────────────┬──────────────────┬──────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ms) │ Latency med (ms) │ Throughput avg (req/s) │ Samples │
├─────────┼────────────────────────────┼──────────────────┼──────────────────┼────────────────────────┼─────────┤
│ 0 │ 'currentInversifyExpress4' │ '7.127' │ '6.924' │ '8888.495' │ 89001 │
│ 1 │ 'express4' │ '6.692' │ '6.466' │ '9458.369' │ 94699 │
└─────────┴────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴─────────┘
currentInversifyExpress4 vs express4 Speedup: 0.940x
Fastify Basic Get Request
┌─────────┬───────────────────────────┬──────────────────┬──────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ms) │ Latency med (ms) │ Throughput avg (req/s) │ Samples │
├─────────┼───────────────────────────┼──────────────────┼──────────────────┼────────────────────────┼─────────┤
│ 0 │ 'currentInversifyFastify' │ '3.937' │ '3.416' │ '15821.434' │ 158317 │
│ 1 │ 'fastify' │ '3.663' │ '3.223' │ '17007.024' │ 170291 │
│ 2 │ 'NestJSFastify' │ '4.202' │ '3.716' │ '14889.114' │ 149009 │
└─────────┴───────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴─────────┘
currentInversifyFastify vs fastify Speedup: 0.930x
currentInversifyFastify vs NestJSFastify Speedup: 1.063x
Hono Basic Get Request
┌─────────┬────────────────────────┬──────────────────┬──────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ms) │ Latency med (ms) │ Throughput avg (req/s) │ Samples │
├─────────┼────────────────────────┼──────────────────┼──────────────────┼────────────────────────┼─────────┤
│ 0 │ 'currentInversifyHono' │ '4.485' │ '4.008' │ '13958.034' │ 139698 │
│ 1 │ 'hono' │ '3.892' │ '3.382' │ '16009.959' │ 160215 │
└─────────┴────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴─────────┘
currentInversifyHono vs hono Speedup: 0.872x
uWebSockets Basic Get Request
┌─────────┬───────────────────────────────┬──────────────────┬──────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ms) │ Latency med (ms) │ Throughput avg (req/s) │ Samples │
├─────────┼───────────────────────────────┼──────────────────┼──────────────────┼────────────────────────┼─────────┤
│ 0 │ 'currentInversifyUwebsockets' │ '2.329' │ '1.643' │ '26071.926' │ 260775 │
│ 1 │ 'uwebsockets' │ '2.241' │ '1.679' │ '26924.387' │ 269288 │
└─────────┴───────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴─────────┘
currentInversifyUwebsockets vs uwebsockets Speedup: 0.968x |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automated release PR