Fix resolution on csp env#1996
Conversation
update function to rely on resolveActivations
🦋 Changeset detectedLatest commit: f31bd85 The changes in this PR will be included in the next version bump. This PR includes changesets to release 4 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughAdds the ChangesJitless resolution
Estimated code review effort: 5 (Critical) | ~120 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 5
🧹 Nitpick comments (4)
packages/container/libraries/inversify/src/test/container/container.int.spec.ts (1)
224-231: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winInclude the
jitlessparameter in the test suite title to avoid duplicate names.The title string currently contains only one
%sformatter. As a result, thejitlessboolean is omitted from the generated title, leading to duplicate test suite names in the test output for thetrueandfalsecases of each arity.Consider adding a second formatter so the test runner can distinguish between the configurations.
💡 Proposed fix
- )( - 'having a service with %s constructor/factory parameters', - (parameterCount: number, jitless: boolean) => { + )( + 'having a service with %s constructor/factory parameters (jitless: %s)', + (parameterCount: number, jitless: boolean) => {🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/container/libraries/inversify/src/test/container/container.int.spec.ts` around lines 224 - 231, Update the describe.each title in the constructor-arity test suite to include a second formatter for the jitless argument, preserving the existing arity placeholder so true and false configurations receive distinct suite names.packages/container/tools/container-benchmarks/src/bin/run.ts (1)
46-46: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueFix typo in class and file name.
There is a typographical error in the class name:
Transtientshould be spelledTransient. Please consider renaming the class and its corresponding file to maintain consistency.
packages/container/tools/container-benchmarks/src/bin/run.ts#L46-L46: update the import path and class name.packages/container/tools/container-benchmarks/src/bin/run.ts#L173-L173: update the class instantiation.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/container/tools/container-benchmarks/src/bin/run.ts` at line 46, Rename the misspelled Inversify benchmark class and its corresponding file from Transtient to Transient. In packages/container/tools/container-benchmarks/src/bin/run.ts:46-46, update the import path and class name; at packages/container/tools/container-benchmarks/src/bin/run.ts:173-173, update the instantiation to use the renamed class.packages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetComplexAsyncServiceInTransientScope.ts (1)
5-160: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winExtract the shared FinalNode/Node1-10 dependency graph into a common fixture.
Three jitless scenario files declare byte-for-byte identical
FinalNode/Node10..Node1class hierarchies; the shared root cause is the lack of a common fixture module for this benchmark graph.
packages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetComplexAsyncServiceInTransientScope.ts#L5-L160: import the shared node classes from a new common fixture module instead of redeclaring them.packages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetComplexServiceInSingletonScope.ts#L5-L160: import the same shared node classes instead of redeclaring them.packages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetComplexServiceInTransientScope.ts#L5-L160: import the same shared node classes instead of redeclaring them.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetComplexAsyncServiceInTransientScope.ts` around lines 5 - 160, Extract the shared FinalNode and Node1–Node10 hierarchy into a common fixture module, exporting all node classes. In packages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetComplexAsyncServiceInTransientScope.ts#L5-L160, packages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetComplexServiceInSingletonScope.ts#L5-L160, and packages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetComplexServiceInTransientScope.ts#L5-L160, remove the duplicate class declarations and import the shared classes, preserving each scenario’s existing behavior.packages/container/libraries/core/src/planning/calculations/buildZeroConstructorArgumentsResolverOnCsp.spec.ts (1)
20-66: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAlign the new tests with the required hierarchy and fixture pattern.
packages/container/libraries/core/src/planning/calculations/buildZeroConstructorArgumentsResolverOnCsp.spec.ts#L20-L66: replace the free fixture function and add Class → Method → Input → Flow scopes.packages/container/libraries/core/src/resolution/actions/resolveServiceActivations.spec.ts#L22-L36: extract the non-Promise branch fixtures into static fixture methods and add the missing hierarchy layer.packages/container/libraries/core/src/resolution/actions/resolveServiceActivations.spec.ts#L121-L134: reuse those static fixtures for the Promise branch instead of duplicating inline setup.As per coding guidelines, use four-layer describe scopes and reusable static fixture methods.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/container/libraries/core/src/planning/calculations/buildZeroConstructorArgumentsResolverOnCsp.spec.ts` around lines 20 - 66, Align the tests with the four-layer Class → Method → Input → Flow hierarchy and reusable static fixture pattern: in packages/container/libraries/core/src/planning/calculations/buildZeroConstructorArgumentsResolverOnCsp.spec.ts (lines 20-66), replace buildNodeFixture with the appropriate static fixture method and add the missing describe scopes; in packages/container/libraries/core/src/resolution/actions/resolveServiceActivations.spec.ts (lines 22-36), move non-Promise fixtures into static fixture methods and add the hierarchy layer; in the same file (lines 121-134), reuse those static fixtures for the Promise branch instead of duplicating inline setup.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.changeset/sour-buttons-cheat.md:
- Line 7: Update the changelog entry describing CSP issues to hyphenate the
compound modifier as “CSP-related,” without changing the rest of the entry.
In
`@packages/container/libraries/core/src/planning/calculations/buildNoActivationsInstanceBindingNodeResolverOnCsp.ts`:
- Around line 9-16: Update the resolver dispatch in
buildNoActivationsInstanceBindingNodeResolverOnCsp to branch on
constructorArguments.length and use the CSP-safe zero-, one-, two-, three-,
four-, and generic constructor-argument builders for each arity. Replace
buildOneConstructorArgumentResolver and buildConstructorArgumentsResolver in
this jitless path, and do not use property count to select constructor arity
because properties are assigned separately.
In
`@packages/container/libraries/core/src/planning/calculations/buildOneConstructorArgumentResolverOnCsp.spec.ts`:
- Around line 210-212: Update the constructor parameter setup in each affected
test flow to replace nodeFixture.constructorParams with a new single-element
array instead of appending via push. Apply this at the highlighted setup and the
corresponding cases around lines 270 and 396 so each test starts with only its
intended resolver and remains order-independent.
- Around line 284-286: Update the asynchronous result assertions so tests
validate fulfilled values instead of comparing Promise objects: in
packages/container/libraries/core/src/planning/calculations/buildOneConstructorArgumentResolverOnCsp.spec.ts:284-286,
await result and assert the resolved Foo; in
packages/container/libraries/core/src/planning/calculations/buildTwoConstructorArgumentResolverOnCsp.spec.ts:340-342,
packages/container/libraries/core/src/planning/calculations/buildThreeConstructorArgumentResolverOnCsp.spec.ts:367-369,
and
packages/container/libraries/core/src/planning/calculations/buildFourConstructorArgumentResolverOnCsp.spec.ts:392-394,
await result and assert the resolved instance's expected constructor arguments.
In
`@packages/container/libraries/core/src/planning/calculations/buildZeroConstructorArgumentsResolverOnCsp.spec.ts`:
- Around line 180-198: Update the asynchronous test in the
“setInstanceProperties() returns a promise” describe block to await result
before asserting. Make the test callback asynchronous, assert the fulfilled
value is a Foo instance, and verify its args property, rather than comparing
Promise objects with toStrictEqual.
---
Nitpick comments:
In
`@packages/container/libraries/core/src/planning/calculations/buildZeroConstructorArgumentsResolverOnCsp.spec.ts`:
- Around line 20-66: Align the tests with the four-layer Class → Method → Input
→ Flow hierarchy and reusable static fixture pattern: in
packages/container/libraries/core/src/planning/calculations/buildZeroConstructorArgumentsResolverOnCsp.spec.ts
(lines 20-66), replace buildNodeFixture with the appropriate static fixture
method and add the missing describe scopes; in
packages/container/libraries/core/src/resolution/actions/resolveServiceActivations.spec.ts
(lines 22-36), move non-Promise fixtures into static fixture methods and add the
hierarchy layer; in the same file (lines 121-134), reuse those static fixtures
for the Promise branch instead of duplicating inline setup.
In
`@packages/container/libraries/inversify/src/test/container/container.int.spec.ts`:
- Around line 224-231: Update the describe.each title in the constructor-arity
test suite to include a second formatter for the jitless argument, preserving
the existing arity placeholder so true and false configurations receive distinct
suite names.
In `@packages/container/tools/container-benchmarks/src/bin/run.ts`:
- Line 46: Rename the misspelled Inversify benchmark class and its corresponding
file from Transtient to Transient. In
packages/container/tools/container-benchmarks/src/bin/run.ts:46-46, update the
import path and class name; at
packages/container/tools/container-benchmarks/src/bin/run.ts:173-173, update the
instantiation to use the renamed class.
In
`@packages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetComplexAsyncServiceInTransientScope.ts`:
- Around line 5-160: Extract the shared FinalNode and Node1–Node10 hierarchy
into a common fixture module, exporting all node classes. In
packages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetComplexAsyncServiceInTransientScope.ts#L5-L160,
packages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetComplexServiceInSingletonScope.ts#L5-L160,
and
packages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetComplexServiceInTransientScope.ts#L5-L160,
remove the duplicate class declarations and import the shared classes,
preserving each scenario’s existing behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 03b1667e-4ff6-4529-b81a-2bfe87ddf921
📒 Files selected for processing (58)
.changeset/eager-areas-ask.md.changeset/sour-buttons-cheat.md.changeset/tame-bars-do.mdpackages/container/libraries/container/src/container/models/ContainerOptions.tspackages/container/libraries/container/src/container/services/Container.spec.tspackages/container/libraries/container/src/container/services/Container.tspackages/container/libraries/container/src/container/services/ServiceResolutionManager.spec.tspackages/container/libraries/container/src/container/services/ServiceResolutionManager.tspackages/container/libraries/core/src/planning/actions/addRootServiceNodeBindingIfContextFree.spec.tspackages/container/libraries/core/src/planning/actions/curryBuildPlanServiceNode.spec.tspackages/container/libraries/core/src/planning/actions/curryBuildServiceNodeBindings.spec.tspackages/container/libraries/core/src/planning/actions/curryBuildServiceNodeBindings.tspackages/container/libraries/core/src/planning/actions/currySubplan.spec.tspackages/container/libraries/core/src/planning/actions/currySubplan.tspackages/container/libraries/core/src/planning/actions/plan.int.spec.tspackages/container/libraries/core/src/planning/actions/plan.spec.tspackages/container/libraries/core/src/planning/actions/removeRootServiceNodeBindingIfContextFree.spec.tspackages/container/libraries/core/src/planning/calculations/buildConstructorArgumentsResolverOnCsp.spec.tspackages/container/libraries/core/src/planning/calculations/buildConstructorArgumentsResolverOnCsp.tspackages/container/libraries/core/src/planning/calculations/buildFourConstructorArgumentResolverOnCsp.spec.tspackages/container/libraries/core/src/planning/calculations/buildFourConstructorArgumentResolverOnCsp.tspackages/container/libraries/core/src/planning/calculations/buildInstanceBindingNodeResolver.tspackages/container/libraries/core/src/planning/calculations/buildNoActivationsInstanceBindingNodeResolver.tspackages/container/libraries/core/src/planning/calculations/buildNoActivationsInstanceBindingNodeResolverOnCsp.tspackages/container/libraries/core/src/planning/calculations/buildOneConstructorArgumentResolverOnCsp.spec.tspackages/container/libraries/core/src/planning/calculations/buildOneConstructorArgumentResolverOnCsp.tspackages/container/libraries/core/src/planning/calculations/buildResolvedValueBindingNodeResolver.tspackages/container/libraries/core/src/planning/calculations/buildThreeConstructorArgumentResolverOnCsp.spec.tspackages/container/libraries/core/src/planning/calculations/buildThreeConstructorArgumentResolverOnCsp.tspackages/container/libraries/core/src/planning/calculations/buildTwoConstructorArgumentResolverOnCsp.spec.tspackages/container/libraries/core/src/planning/calculations/buildTwoConstructorArgumentResolverOnCsp.tspackages/container/libraries/core/src/planning/calculations/buildZeroConstructorArgumentsResolverOnCsp.spec.tspackages/container/libraries/core/src/planning/calculations/buildZeroConstructorArgumentsResolverOnCsp.tspackages/container/libraries/core/src/planning/models/BasePlanParams.tspackages/container/libraries/core/src/planning/models/InstanceBindingNodeImplementation.tspackages/container/libraries/core/src/planning/services/PlanResultCacheService.spec.tspackages/container/libraries/core/src/planning/services/PlanResultCacheService.tspackages/container/libraries/core/src/resolution/actions/resolve.int.spec.tspackages/container/libraries/core/src/resolution/actions/resolveServiceActivations.spec.tspackages/container/libraries/core/src/resolution/actions/resolveServiceActivations.tspackages/container/libraries/inversify/src/test/container/container.int.spec.tspackages/container/tools/container-benchmarks/src/bin/run.tspackages/container/tools/container-benchmarks/src/scenario/inversifyCurrent/InversifyCurrentBaseScenario.tspackages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessBaseScenario.tspackages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetComplexAsyncServiceInTransientScope.tspackages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetComplexResolvedValueServiceInTranstientScope.tspackages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetComplexServiceInSingletonScope.tspackages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetComplexServiceInTransientScope.tspackages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetComplexServiceWithPropertiesInTransientScope.tspackages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetServiceInSingletonScope.tspackages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetServiceInTransientScope.tspackages/container/tools/container-benchmarks/src/scenario/inversifyCurrentJitless/InversifyCurrentJitlessGetWideServiceInTransientScope.tspackages/container/tools/container-benchmarks/src/scenario/models/Platform.tspackages/docs/services/inversify-site/blog/2026-07-15-announcing-inversify-8-2-0/index.mdxpackages/docs/services/inversify-site/docs/api/container.mdxpackages/docs/services/inversify-site/i18n/zh/docusaurus-plugin-content-docs/current/api/container.mdxpackages/docs/services/inversify-site/i18n/zh/docusaurus-plugin-content-docs/version-8.x/api/container.mdxpackages/docs/services/inversify-site/versioned_docs/version-8.x/api/container.mdx
Benchmarks results:[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' │ '249.64 ± 0.22%' │ '240.00 ± 10.00' │ '4148075 ± 0.01%' │ '4166667 ± 166667' │ 4005796 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '246.23 ± 0.16%' │ '231.00 ± 9.00' │ '4213227 ± 0.01%' │ '4329004 ± 162338' │ 4061282 │
│ 2 │ 'inversify6' │ '1057.1 ± 0.24%' │ '981.00 ± 21.00' │ '990071 ± 0.02%' │ '1019368 ± 21364' │ 945988 │
│ 3 │ 'inversify7' │ '306.39 ± 0.15%' │ '290.00 ± 10.00' │ '3392918 ± 0.01%' │ '3448276 ± 114943' │ 3263777 │
│ 4 │ 'inversify8' │ '251.97 ± 0.12%' │ '240.00 ± 9.00' │ '4118847 ± 0.01%' │ '4166667 ± 162338' │ 3968764 │
│ 5 │ 'awilix' │ '228.93 ± 0.31%' │ '210.00 ± 10.00' │ '4610940 ± 0.01%' │ '4761905 ± 216450' │ 4368142 │
│ 6 │ 'NestJS' │ '314.70 ± 0.28%' │ '291.00 ± 9.00' │ '3303857 ± 0.01%' │ '3436426 ± 103093' │ 3177600 │
│ 7 │ 'tsyringe' │ '317.60 ± 0.28%' │ '300.00 ± 9.00' │ '3278625 ± 0.01%' │ '3333333 ± 103093' │ 3148626 │
└─────────┴──────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 0.985x
inversifyCurrent vs inversify6 Speedup: 4.190x
inversifyCurrent vs inversify7 Speedup: 1.223x
inversifyCurrent vs inversify8 Speedup: 1.007x
inversifyCurrent vs awilix Speedup: 0.900x
inversifyCurrent vs NestJS Speedup: 1.256x
inversifyCurrent vs tsyringe Speedup: 1.265x
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' │ '295.48 ± 1.35%' │ '271.00 ± 9.00' │ '3583039 ± 0.01%' │ '3690037 ± 118608' │ 3384374 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '294.55 ± 0.31%' │ '271.00 ± 9.00' │ '3570455 ± 0.01%' │ '3690037 ± 118608' │ 3394975 │
│ 2 │ 'inversify6' │ '5614.8 ± 0.26%' │ '5259.0 ± 89.00' │ '184584 ± 0.05%' │ '190150 ± 3269' │ 178101 │
│ 3 │ 'inversify7' │ '592.23 ± 0.15%' │ '570.00 ± 9.00' │ '1737219 ± 0.01%' │ '1754386 ± 28145' │ 1688542 │
│ 4 │ 'inversify8' │ '302.34 ± 0.28%' │ '281.00 ± 9.00' │ '3450351 ± 0.01%' │ '3558719 ± 110443' │ 3307537 │
│ 5 │ 'awilix' │ '438.24 ± 0.29%' │ '411.00 ± 10.00' │ '2366085 ± 0.01%' │ '2433090 ± 60676' │ 2281851 │
│ 6 │ 'NestJS' │ '10576 ± 1.99%' │ '8977.0 ± 250.00' │ '105734 ± 0.10%' │ '111396 ± 3136' │ 94555 │
│ 7 │ 'tsyringe' │ '447.70 ± 0.18%' │ '421.00 ± 10.00' │ '2303175 ± 0.01%' │ '2375297 ± 55111' │ 2233616 │
└─────────┴──────────────────────────────┴──────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.004x
inversifyCurrent vs inversify6 Speedup: 19.411x
inversifyCurrent vs inversify7 Speedup: 2.063x
inversifyCurrent vs inversify8 Speedup: 1.038x
inversifyCurrent vs awilix Speedup: 1.514x
inversifyCurrent vs NestJS Speedup: 33.887x
inversifyCurrent vs tsyringe Speedup: 1.556x
Get wide service in transient scope
┌─────────┬──────────────────────────────┬──────────────────┬──────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼──────────────────────────────┼──────────────────┼──────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '580.04 ± 0.30%' │ '551.00 ± 10.00' │ '1788100 ± 0.01%' │ '1814882 ± 33547' │ 1724007 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '708.17 ± 0.26%' │ '672.00 ± 9.00' │ '1454776 ± 0.01%' │ '1488095 ± 19666' │ 1412086 │
│ 2 │ 'inversify6' │ '25598 ± 0.37%' │ '24075 ± 211.00' │ '40279 ± 0.11%' │ '41537 ± 367' │ 39066 │
│ 3 │ 'inversify7' │ '1736.7 ± 0.25%' │ '1673.0 ± 20.00' │ '591854 ± 0.02%' │ '597729 ± 7061' │ 575806 │
│ 4 │ 'inversify8' │ '761.83 ± 0.27%' │ '722.00 ± 9.00' │ '1355316 ± 0.01%' │ '1385042 ± 17052' │ 1312626 │
│ 5 │ 'awilix' │ '1192.1 ± 0.14%' │ '1162.0 ± 10.00' │ '853230 ± 0.01%' │ '860585 ± 7470' │ 838862 │
│ 6 │ 'NestJS' │ '24262 ± 1.19%' │ '21750 ± 432.00' │ '44090 ± 0.13%' │ '45977 ± 927' │ 41218 │
│ 7 │ 'tsyringe' │ '1447.6 ± 0.15%' │ '1392.0 ± 10.00' │ '708330 ± 0.02%' │ '718391 ± 5198' │ 690786 │
└─────────┴──────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.229x
inversifyCurrent vs inversify6 Speedup: 44.393x
inversifyCurrent vs inversify7 Speedup: 3.021x
inversifyCurrent vs inversify8 Speedup: 1.319x
inversifyCurrent vs awilix Speedup: 2.096x
inversifyCurrent vs NestJS Speedup: 40.555x
inversifyCurrent vs tsyringe Speedup: 2.524x
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' │ '270.65 ± 0.26%' │ '251.00 ± 9.00' │ '3824739 ± 0.01%' │ '3984064 ± 137910' │ 3694856 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '261.82 ± 0.24%' │ '241.00 ± 9.00' │ '3970476 ± 0.01%' │ '4149378 ± 149378' │ 3819441 │
│ 2 │ 'inversify6' │ '1101.1 ± 1.58%' │ '1022.0 ± 30.00' │ '951143 ± 0.02%' │ '978474 ± 27903' │ 908182 │
│ 3 │ 'inversify7' │ '298.31 ± 0.29%' │ '280.00 ± 9.00' │ '3496897 ± 0.01%' │ '3571428 ± 118608' │ 3352264 │
│ 4 │ 'inversify8' │ '261.02 ± 0.14%' │ '250.00 ± 10.00' │ '3964845 ± 0.01%' │ '4000000 ± 153846' │ 3831114 │
│ 5 │ 'awilix' │ '252.00 ± 0.17%' │ '240.00 ± 10.00' │ '4128394 ± 0.01%' │ '4166667 ± 166667' │ 3968266 │
│ 6 │ 'NestJS' │ '316.94 ± 0.16%' │ '301.00 ± 10.00' │ '3260974 ± 0.01%' │ '3322259 ± 114167' │ 3155221 │
│ 7 │ 'tsyringe' │ '330.81 ± 0.39%' │ '310.00 ± 10.00' │ '3178953 ± 0.01%' │ '3225806 ± 100806' │ 3022842 │
└─────────┴──────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 0.963x
inversifyCurrent vs inversify6 Speedup: 4.021x
inversifyCurrent vs inversify7 Speedup: 1.094x
inversifyCurrent vs inversify8 Speedup: 0.965x
inversifyCurrent vs awilix Speedup: 0.926x
inversifyCurrent vs NestJS Speedup: 1.173x
inversifyCurrent vs tsyringe Speedup: 1.203x
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' │ '67452 ± 0.90%' │ '64110 ± 922.00' │ '15226 ± 0.15%' │ '15598 ± 226' │ 14826 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '83995 ± 0.62%' │ '80270 ± 581.00' │ '12170 ± 0.16%' │ '12458 ± 91' │ 11906 │
│ 2 │ 'inversifyCurrent (Resolved Value)' │ '66025 ± 0.72%' │ '62737 ± 631.00' │ '15554 ± 0.15%' │ '15940 ± 162' │ 15146 │
│ 3 │ 'inversifyCurrent (Jitless) (Resolved Value)' │ '70328 ± 0.62%' │ '65353 ± 2886.0' │ '14600 ± 0.18%' │ '15302 ± 699' │ 14220 │
│ 4 │ 'inversify6' │ '5326041 ± 2.54%' │ '5098166 ± 172513' │ '191 ± 1.47%' │ '196 ± 7' │ 188 │
│ 5 │ 'inversify7' │ '293680 ± 0.48%' │ '287148 ± 1762.0' │ '3434 ± 0.22%' │ '3483 ± 21' │ 3406 │
│ 6 │ 'inversify8' │ '107430 ± 0.42%' │ '103624 ± 1843.0' │ '9422 ± 0.15%' │ '9650 ± 173' │ 9309 │
│ 7 │ 'awilix' │ '281422 ± 0.34%' │ '275575 ± 2825.0' │ '3573 ± 0.18%' │ '3629 ± 37' │ 3554 │
│ 8 │ 'NestJS' │ '80201 ± 1.64%' │ '72155 ± 1442.0' │ '13294 ± 0.22%' │ '13859 ± 279' │ 12469 │
│ 9 │ 'tsyringe' │ '233684 ± 0.47%' │ '227345 ± 1562.0' │ '4320 ± 0.20%' │ '4399 ± 30' │ 4280 │
└─────────┴───────────────────────────────────────────────┴───────────────────┴────────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.251x
inversifyCurrent vs inversifyCurrent (Resolved Value) Speedup: 0.979x
inversifyCurrent vs inversifyCurrent (Jitless) (Resolved Value) Speedup: 1.043x
inversifyCurrent vs inversify6 Speedup: 79.712x
inversifyCurrent vs inversify7 Speedup: 4.434x
inversifyCurrent vs inversify8 Speedup: 1.616x
inversifyCurrent vs awilix Speedup: 4.262x
inversifyCurrent vs NestJS Speedup: 1.145x
inversifyCurrent vs tsyringe Speedup: 3.524x
Get complex service with properties in transient scope
┌─────────┬──────────────────────────────┬───────────────────┬───────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼──────────────────────────────┼───────────────────┼───────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '78424 ± 0.74%' │ '74209 ± 441.00' │ '13126 ± 0.17%' │ '13475 ± 81' │ 12752 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '98005 ± 0.68%' │ '92773 ± 991.00' │ '10449 ± 0.18%' │ '10779 ± 116' │ 10204 │
│ 2 │ 'inversify6' │ '5577949 ± 2.75%' │ '5294868 ± 56461' │ '183 ± 1.48%' │ '189 ± 2' │ 180 │
│ 3 │ 'inversify7' │ '343047 ± 0.70%' │ '332592 ± 1983.5' │ '2954 ± 0.27%' │ '3007 ± 18' │ 2916 │
│ 4 │ 'inversify8' │ '219101 ± 0.67%' │ '211896 ± 1813.0' │ '4636 ± 0.23%' │ '4719 ± 41' │ 4565 │
│ 5 │ 'NestJS' │ '331283 ± 1.94%' │ '290794 ± 7835.0' │ '3246 ± 0.57%' │ '3439 ± 94' │ 3019 │
└─────────┴──────────────────────────────┴───────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.256x
inversifyCurrent vs inversify6 Speedup: 71.915x
inversifyCurrent vs inversify7 Speedup: 4.444x
inversifyCurrent vs inversify8 Speedup: 2.831x
inversifyCurrent vs NestJS Speedup: 4.044x
Get complex async service in transient scope
┌─────────┬──────────────────────────────┬───────────────────┬────────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼──────────────────────────────┼───────────────────┼────────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '366746 ± 0.93%' │ '350436 ± 7273.0' │ '2787 ± 0.39%' │ '2854 ± 59' │ 2727 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '362276 ± 0.92%' │ '345477 ± 7014.0' │ '2824 ± 0.39%' │ '2895 ± 59' │ 2761 │
│ 2 │ 'inversify6' │ '5059969 ± 2.81%' │ '4722513 ± 123772' │ '202 ± 1.68%' │ '212 ± 6' │ 198 │
│ 3 │ 'inversify7' │ '728368 ± 0.91%' │ '703185 ± 6513.0' │ '1393 ± 0.47%' │ '1422 ± 13' │ 1373 │
│ 4 │ 'inversify8' │ '381003 ± 0.87%' │ '366285 ± 6722.0' │ '2680 ± 0.36%' │ '2730 ± 50' │ 2625 │
└─────────┴──────────────────────────────┴───────────────────┴────────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 0.987x
inversifyCurrent vs inversify6 Speedup: 13.780x
inversifyCurrent vs inversify7 Speedup: 2.001x
inversifyCurrent vs inversify8 Speedup: 1.040x[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' │ '258.49 ± 0.14%' │ '241.00 ± 1.00' │ '4006812 ± 0.01%' │ '4149378 ± 17289' │ 3868608 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '253.81 ± 0.18%' │ '240.00 ± 9.00' │ '4090236 ± 0.01%' │ '4166667 ± 162338' │ 3939988 │
│ 2 │ 'inversify6' │ '976.32 ± 0.36%' │ '882.00 ± 20.00' │ '1089718 ± 0.02%' │ '1133787 ± 26306' │ 1024251 │
│ 3 │ 'inversify7' │ '287.80 ± 0.13%' │ '270.00 ± 10.00' │ '3597106 ± 0.01%' │ '3703704 ± 132275' │ 3474660 │
│ 4 │ 'inversify8' │ '250.51 ± 0.13%' │ '231.00 ± 9.00' │ '4158243 ± 0.01%' │ '4329004 ± 162338' │ 3991908 │
│ 5 │ 'awilix' │ '236.71 ± 0.31%' │ '220.00 ± 10.00' │ '4468132 ± 0.01%' │ '4545455 ± 216450' │ 4224657 │
│ 6 │ 'NestJS' │ '319.03 ± 0.36%' │ '291.00 ± 9.00' │ '3295218 ± 0.01%' │ '3436426 ± 103093' │ 3134489 │
│ 7 │ 'tsyringe' │ '295.88 ± 0.47%' │ '261.00 ± 10.00' │ '3665427 ± 0.01%' │ '3831418 ± 141381' │ 3379742 │
└─────────┴──────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 0.980x
inversifyCurrent vs inversify6 Speedup: 3.677x
inversifyCurrent vs inversify7 Speedup: 1.114x
inversifyCurrent vs inversify8 Speedup: 0.964x
inversifyCurrent vs awilix Speedup: 0.897x
inversifyCurrent vs NestJS Speedup: 1.216x
inversifyCurrent vs tsyringe Speedup: 1.093x
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' │ '314.09 ± 1.44%' │ '290.00 ± 10.00' │ '3378207 ± 0.01%' │ '3448276 ± 114942' │ 3183804 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '300.51 ± 0.30%' │ '281.00 ± 10.00' │ '3489559 ± 0.01%' │ '3558719 ± 131318' │ 3327726 │
│ 2 │ 'inversify6' │ '5510.3 ± 0.33%' │ '5099.0 ± 91.00' │ '189755 ± 0.06%' │ '196117 ± 3524' │ 181478 │
│ 3 │ 'inversify7' │ '508.14 ± 0.36%' │ '471.00 ± 10.00' │ '2070165 ± 0.01%' │ '2123142 ± 46055' │ 1967970 │
│ 4 │ 'inversify8' │ '303.38 ± 0.32%' │ '280.00 ± 10.00' │ '3487862 ± 0.01%' │ '3571429 ± 123153' │ 3296211 │
│ 5 │ 'awilix' │ '440.91 ± 0.42%' │ '411.00 ± 10.00' │ '2380285 ± 0.01%' │ '2433090 ± 57793' │ 2268034 │
│ 6 │ 'NestJS' │ '11011 ± 2.17%' │ '9227.0 ± 300.00' │ '102434 ± 0.11%' │ '108378 ± 3529' │ 90815 │
│ 7 │ 'tsyringe' │ '442.26 ± 0.13%' │ '411.00 ± 10.00' │ '2343828 ± 0.01%' │ '2433090 ± 57793' │ 2261095 │
└─────────┴──────────────────────────────┴──────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 0.968x
inversifyCurrent vs inversify6 Speedup: 17.803x
inversifyCurrent vs inversify7 Speedup: 1.632x
inversifyCurrent vs inversify8 Speedup: 0.969x
inversifyCurrent vs awilix Speedup: 1.419x
inversifyCurrent vs NestJS Speedup: 32.979x
inversifyCurrent vs tsyringe Speedup: 1.441x
Get wide service in transient scope
┌─────────┬──────────────────────────────┬──────────────────┬──────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼──────────────────────────────┼──────────────────┼──────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '566.71 ± 0.38%' │ '531.00 ± 10.00' │ '1843957 ± 0.01%' │ '1883239 ± 36147' │ 1764556 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '720.96 ± 0.33%' │ '681.00 ± 10.00' │ '1439032 ± 0.01%' │ '1468429 ± 21251' │ 1387040 │
│ 2 │ 'inversify6' │ '24806 ± 0.40%' │ '23063 ± 251.00' │ '41862 ± 0.12%' │ '43359 ± 475' │ 40313 │
│ 3 │ 'inversify7' │ '1335.3 ± 0.31%' │ '1262.0 ± 19.00' │ '780131 ± 0.02%' │ '792393 ± 12112' │ 748896 │
│ 4 │ 'inversify8' │ '760.91 ± 0.30%' │ '721.00 ± 10.00' │ '1361775 ± 0.01%' │ '1386963 ± 18973' │ 1314223 │
│ 5 │ 'awilix' │ '1299.3 ± 0.32%' │ '1242.0 ± 20.00' │ '793160 ± 0.02%' │ '805153 ± 13178' │ 769633 │
│ 6 │ 'NestJS' │ '24137 ± 1.31%' │ '21781 ± 481.00' │ '44253 ± 0.12%' │ '45912 ± 1015' │ 41431 │
│ 7 │ 'tsyringe' │ '1375.2 ± 0.17%' │ '1322.0 ± 19.00' │ '746070 ± 0.02%' │ '756430 ± 11030' │ 727183 │
└─────────┴──────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.281x
inversifyCurrent vs inversify6 Speedup: 44.049x
inversifyCurrent vs inversify7 Speedup: 2.364x
inversifyCurrent vs inversify8 Speedup: 1.354x
inversifyCurrent vs awilix Speedup: 2.325x
inversifyCurrent vs NestJS Speedup: 41.669x
inversifyCurrent vs tsyringe Speedup: 2.472x
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' │ '260.99 ± 0.23%' │ '250.00 ± 10.00' │ '3971739 ± 0.01%' │ '4000000 ± 153846' │ 3831513 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '257.72 ± 0.24%' │ '241.00 ± 9.00' │ '4035832 ± 0.01%' │ '4149378 ± 149378' │ 3880170 │
│ 2 │ 'inversify6' │ '1011.4 ± 2.14%' │ '922.00 ± 20.00' │ '1047584 ± 0.02%' │ '1084599 ± 24049' │ 988683 │
│ 3 │ 'inversify7' │ '278.18 ± 0.17%' │ '260.00 ± 10.00' │ '3763963 ± 0.01%' │ '3846154 ± 153846' │ 3594814 │
│ 4 │ 'inversify8' │ '257.40 ± 0.16%' │ '241.00 ± 1.00' │ '4029704 ± 0.01%' │ '4149378 ± 17289' │ 3884939 │
│ 5 │ 'awilix' │ '260.95 ± 0.33%' │ '240.00 ± 10.00' │ '4059632 ± 0.01%' │ '4166667 ± 166666' │ 3832163 │
│ 6 │ 'NestJS' │ '316.04 ± 0.16%' │ '300.00 ± 10.00' │ '3280256 ± 0.01%' │ '3333333 ± 107527' │ 3164202 │
│ 7 │ 'tsyringe' │ '302.96 ± 0.41%' │ '280.00 ± 10.00' │ '3489604 ± 0.01%' │ '3571428 ± 123153' │ 3300803 │
└─────────┴──────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 0.984x
inversifyCurrent vs inversify6 Speedup: 3.791x
inversifyCurrent vs inversify7 Speedup: 1.055x
inversifyCurrent vs inversify8 Speedup: 0.986x
inversifyCurrent vs awilix Speedup: 0.978x
inversifyCurrent vs NestJS Speedup: 1.211x
inversifyCurrent vs tsyringe Speedup: 1.138x
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' │ '67908 ± 0.62%' │ '64150 ± 882.00' │ '15118 ± 0.16%' │ '15588 ± 216' │ 14726 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '81527 ± 0.59%' │ '78045 ± 813.00' │ '12515 ± 0.15%' │ '12813 ± 135' │ 12266 │
│ 2 │ 'inversifyCurrent (Resolved Value)' │ '66456 ± 0.65%' │ '62947 ± 632.00' │ '15478 ± 0.16%' │ '15886 ± 161' │ 15048 │
│ 3 │ 'inversifyCurrent (Jitless) (Resolved Value)' │ '66116 ± 0.63%' │ '62698 ± 601.00' │ '15539 ± 0.15%' │ '15949 ± 154' │ 15125 │
│ 4 │ 'inversify6' │ '5082850 ± 3.26%' │ '4765597 ± 47445' │ '202 ± 1.58%' │ '210 ± 2' │ 197 │
│ 5 │ 'inversify7' │ '222757 ± 0.78%' │ '214131 ± 1282.0' │ '4575 ± 0.24%' │ '4670 ± 28' │ 4490 │
│ 6 │ 'inversify8' │ '109759 ± 0.42%' │ '109585 ± 4869.0' │ '9226 ± 0.16%' │ '9125 ± 420' │ 9111 │
│ 7 │ 'awilix' │ '286416 ± 0.63%' │ '273762 ± 2243.5' │ '3552 ± 0.31%' │ '3653 ± 30' │ 3492 │
│ 8 │ 'NestJS' │ '79724 ± 1.56%' │ '71113 ± 1463.0' │ '13393 ± 0.23%' │ '14062 ± 293' │ 12544 │
│ 9 │ 'tsyringe' │ '216844 ± 0.45%' │ '210624 ± 1042.0' │ '4656 ± 0.19%' │ '4748 ± 24' │ 4612 │
└─────────┴───────────────────────────────────────────────┴───────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.208x
inversifyCurrent vs inversifyCurrent (Resolved Value) Speedup: 0.977x
inversifyCurrent vs inversifyCurrent (Jitless) (Resolved Value) Speedup: 0.973x
inversifyCurrent vs inversify6 Speedup: 74.986x
inversifyCurrent vs inversify7 Speedup: 3.304x
inversifyCurrent vs inversify8 Speedup: 1.639x
inversifyCurrent vs awilix Speedup: 4.256x
inversifyCurrent vs NestJS Speedup: 1.129x
inversifyCurrent vs tsyringe Speedup: 3.247x
Get complex service with properties in transient scope
┌─────────┬──────────────────────────────┬───────────────────┬───────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼──────────────────────────────┼───────────────────┼───────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '79501 ± 0.75%' │ '74680 ± 581.00' │ '12960 ± 0.18%' │ '13390 ± 105' │ 12579 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '100839 ± 0.78%' │ '93776 ± 630.00' │ '10262 ± 0.23%' │ '10664 ± 71' │ 9917 │
│ 2 │ 'inversify6' │ '5510326 ± 3.00%' │ '5141051 ± 62261' │ '186 ± 1.74%' │ '195 ± 2' │ 182 │
│ 3 │ 'inversify7' │ '282784 ± 0.97%' │ '269865 ± 1503.0' │ '3617 ± 0.30%' │ '3706 ± 21' │ 3537 │
│ 4 │ 'inversify8' │ '222407 ± 1.16%' │ '210514 ± 1482.0' │ '4628 ± 0.32%' │ '4750 ± 33' │ 4497 │
│ 5 │ 'NestJS' │ '334489 ± 1.89%' │ '301439 ± 8385.5' │ '3177 ± 0.49%' │ '3317 ± 93' │ 2990 │
└─────────┴──────────────────────────────┴───────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.263x
inversifyCurrent vs inversify6 Speedup: 69.751x
inversifyCurrent vs inversify7 Speedup: 3.583x
inversifyCurrent vs inversify8 Speedup: 2.800x
inversifyCurrent vs NestJS Speedup: 4.080x
Get complex async service in transient scope
┌─────────┬──────────────────────────────┬───────────────────┬────────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼──────────────────────────────┼───────────────────┼────────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '365434 ± 0.88%' │ '350144 ± 6341.0' │ '2792 ± 0.36%' │ '2856 ± 52' │ 2737 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '364669 ± 0.87%' │ '350426 ± 7114.0' │ '2796 ± 0.36%' │ '2854 ± 58' │ 2743 │
│ 2 │ 'inversify6' │ '5105097 ± 3.37%' │ '4628035 ± 122609' │ '202 ± 1.99%' │ '216 ± 6' │ 196 │
│ 3 │ 'inversify7' │ '639980 ± 0.92%' │ '619780 ± 7054.0' │ '1586 ± 0.42%' │ '1613 ± 18' │ 1563 │
│ 4 │ 'inversify8' │ '392846 ± 0.81%' │ '379676 ± 6877.5' │ '2593 ± 0.36%' │ '2634 ± 48' │ 2546 │
└─────────┴──────────────────────────────┴───────────────────┴────────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 0.998x
inversifyCurrent vs inversify6 Speedup: 13.804x
inversifyCurrent vs inversify7 Speedup: 1.761x
inversifyCurrent vs inversify8 Speedup: 1.077x |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
packages/container/libraries/core/src/planning/calculations/resolveMany.spec.ts (1)
5-82: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueExtract the duplicated build callback into a shared fixture.
The five-argument build lambda is copy-pasted identically across all three nested blocks (lines 17-23, 42-48, 67-73). As per coding guidelines, spec files should "Create reusable test fixtures with static methods instead of inline test setup"; extracting this into a single shared constant/static helper would remove the duplication.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/container/libraries/core/src/planning/calculations/resolveMany.spec.ts` around lines 5 - 82, Extract the repeated five-argument callback used in all resolveMany scenarios into one shared test fixture, such as a constant or static helper near the describe block. Update each resolveMany call to reuse that fixture while preserving the existing argument types and returned value order.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@packages/container/libraries/core/src/planning/calculations/resolveMany.spec.ts`:
- Around line 32-80: Update the async assertions in the “some values are
promises” and “all values are promises” test blocks to await the result and use
Jest’s .resolves matcher, asserting directly against [1, 2, 3, 4, 5] rather than
comparing Promise objects.
---
Nitpick comments:
In
`@packages/container/libraries/core/src/planning/calculations/resolveMany.spec.ts`:
- Around line 5-82: Extract the repeated five-argument callback used in all
resolveMany scenarios into one shared test fixture, such as a constant or static
helper near the describe block. Update each resolveMany call to reuse that
fixture while preserving the existing argument types and returned value order.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: d8fa1ead-4e3b-4a6e-a90b-554656a1d3d1
📒 Files selected for processing (3)
packages/container/libraries/core/src/planning/calculations/buildNoActivationsInstanceBindingNodeResolverOnCsp.tspackages/container/libraries/core/src/planning/calculations/resolveMany.spec.tspackages/container/libraries/core/src/planning/calculations/resolveMany.ts
Benchmarks results:[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' │ '247.95 ± 0.16%' │ '230.00 ± 9.00' │ '4209089 ± 0.01%' │ '4347826 ± 177061' │ 4033047 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '250.15 ± 0.14%' │ '231.00 ± 9.00' │ '4154325 ± 0.01%' │ '4329004 ± 162338' │ 3997547 │
│ 2 │ 'inversify6' │ '1065.2 ± 0.25%' │ '992.00 ± 20.00' │ '976775 ± 0.02%' │ '1008065 ± 20742' │ 938781 │
│ 3 │ 'inversify7' │ '309.62 ± 0.16%' │ '291.00 ± 10.00' │ '3350806 ± 0.01%' │ '3436426 ± 122293' │ 3229737 │
│ 4 │ 'inversify8' │ '250.94 ± 0.14%' │ '240.00 ± 10.00' │ '4124069 ± 0.01%' │ '4166667 ± 181159' │ 3985057 │
│ 5 │ 'awilix' │ '232.50 ± 0.25%' │ '211.00 ± 10.00' │ '4526558 ± 0.01%' │ '4739337 ± 235788' │ 4301003 │
│ 6 │ 'NestJS' │ '330.35 ± 0.32%' │ '310.00 ± 10.00' │ '3170280 ± 0.01%' │ '3225806 ± 107527' │ 3027133 │
│ 7 │ 'tsyringe' │ '320.11 ± 0.32%' │ '300.00 ± 10.00' │ '3280991 ± 0.01%' │ '3333333 ± 114943' │ 3123939 │
└─────────┴──────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.013x
inversifyCurrent vs inversify6 Speedup: 4.309x
inversifyCurrent vs inversify7 Speedup: 1.256x
inversifyCurrent vs inversify8 Speedup: 1.021x
inversifyCurrent vs awilix Speedup: 0.930x
inversifyCurrent vs NestJS Speedup: 1.328x
inversifyCurrent vs tsyringe Speedup: 1.283x
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' │ '305.66 ± 0.25%' │ '281.00 ± 10.00' │ '3429132 ± 0.01%' │ '3558719 ± 122293' │ 3271571 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '333.86 ± 0.23%' │ '311.00 ± 10.00' │ '3107494 ± 0.01%' │ '3215434 ± 100169' │ 2995230 │
│ 2 │ 'inversify6' │ '5816.0 ± 0.28%' │ '5400.0 ± 100.00' │ '179196 ± 0.06%' │ '185185 ± 3367' │ 171941 │
│ 3 │ 'inversify7' │ '578.39 ± 0.13%' │ '551.00 ± 10.00' │ '1785234 ± 0.01%' │ '1814882 ± 33547' │ 1728939 │
│ 4 │ 'inversify8' │ '288.88 ± 0.27%' │ '270.00 ± 9.00' │ '3619167 ± 0.01%' │ '3703704 ± 127714' │ 3461648 │
│ 5 │ 'awilix' │ '436.21 ± 0.35%' │ '401.00 ± 10.00' │ '2408794 ± 0.01%' │ '2493766 ± 63779' │ 2292448 │
│ 6 │ 'NestJS' │ '11096 ± 2.03%' │ '9367.0 ± 260.00' │ '101085 ± 0.11%' │ '106758 ± 3002' │ 90125 │
│ 7 │ 'tsyringe' │ '461.30 ± 0.16%' │ '440.00 ± 11.00' │ '2244082 ± 0.01%' │ '2272727 ± 55432' │ 2167764 │
└─────────┴──────────────────────────────┴──────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.104x
inversifyCurrent vs inversify6 Speedup: 19.136x
inversifyCurrent vs inversify7 Speedup: 1.921x
inversifyCurrent vs inversify8 Speedup: 0.947x
inversifyCurrent vs awilix Speedup: 1.424x
inversifyCurrent vs NestJS Speedup: 33.923x
inversifyCurrent vs tsyringe Speedup: 1.528x
Get wide service in transient scope
┌─────────┬──────────────────────────────┬──────────────────┬──────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼──────────────────────────────┼──────────────────┼──────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '578.68 ± 0.37%' │ '541.00 ± 10.00' │ '1810680 ± 0.02%' │ '1848429 ± 34810' │ 1728076 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '932.66 ± 0.12%' │ '892.00 ± 10.00' │ '1098467 ± 0.01%' │ '1121076 ± 12711' │ 1072204 │
│ 2 │ 'inversify6' │ '27401 ± 0.39%' │ '25578 ± 241.00' │ '37756 ± 0.12%' │ '39096 ± 372' │ 36495 │
│ 3 │ 'inversify7' │ '1745.8 ± 0.25%' │ '1673.0 ± 10.00' │ '589914 ± 0.02%' │ '597729 ± 3594' │ 572813 │
│ 4 │ 'inversify8' │ '776.11 ± 0.27%' │ '741.00 ± 10.00' │ '1332489 ± 0.01%' │ '1349528 ± 18461' │ 1288483 │
│ 5 │ 'awilix' │ '1213.3 ± 0.15%' │ '1172.0 ± 19.00' │ '840596 ± 0.01%' │ '853242 ± 14060' │ 824193 │
│ 6 │ 'NestJS' │ '25344 ± 1.27%' │ '22562 ± 501.00' │ '42426 ± 0.14%' │ '44322 ± 1000' │ 39458 │
│ 7 │ 'tsyringe' │ '1326.7 ± 0.15%' │ '1272.0 ± 11.00' │ '774561 ± 0.02%' │ '786164 ± 6740' │ 753771 │
└─────────┴──────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.648x
inversifyCurrent vs inversify6 Speedup: 47.957x
inversifyCurrent vs inversify7 Speedup: 3.069x
inversifyCurrent vs inversify8 Speedup: 1.359x
inversifyCurrent vs awilix Speedup: 2.154x
inversifyCurrent vs NestJS Speedup: 42.679x
inversifyCurrent vs tsyringe Speedup: 2.338x
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' │ '268.92 ± 0.23%' │ '251.00 ± 9.00' │ '3856272 ± 0.01%' │ '3984064 ± 137910' │ 3718574 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '267.74 ± 0.16%' │ '251.00 ± 10.00' │ '3878772 ± 0.01%' │ '3984064 ± 165314' │ 3734928 │
│ 2 │ 'inversify6' │ '1129.9 ± 1.56%' │ '1042.0 ± 30.00' │ '929715 ± 0.02%' │ '959693 ± 26857' │ 885060 │
│ 3 │ 'inversify7' │ '303.86 ± 0.37%' │ '281.00 ± 10.00' │ '3473047 ± 0.01%' │ '3558719 ± 131318' │ 3290983 │
│ 4 │ 'inversify8' │ '264.64 ± 0.16%' │ '250.00 ± 10.00' │ '3926384 ± 0.01%' │ '4000000 ± 153846' │ 3778709 │
│ 5 │ 'awilix' │ '257.36 ± 0.27%' │ '240.00 ± 10.00' │ '4074467 ± 0.01%' │ '4166667 ± 181159' │ 3885680 │
│ 6 │ 'NestJS' │ '329.03 ± 0.18%' │ '311.00 ± 10.00' │ '3141066 ± 0.01%' │ '3215434 ± 106825' │ 3039203 │
│ 7 │ 'tsyringe' │ '322.99 ± 0.34%' │ '300.00 ± 10.00' │ '3257460 ± 0.01%' │ '3333333 ± 107527' │ 3096085 │
└─────────┴──────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 0.994x
inversifyCurrent vs inversify6 Speedup: 4.148x
inversifyCurrent vs inversify7 Speedup: 1.110x
inversifyCurrent vs inversify8 Speedup: 0.982x
inversifyCurrent vs awilix Speedup: 0.946x
inversifyCurrent vs NestJS Speedup: 1.228x
inversifyCurrent vs tsyringe Speedup: 1.184x
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' │ '73738 ± 0.59%' │ '70371 ± 1262.0' │ '13861 ± 0.15%' │ '14210 ± 257' │ 13562 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '113264 ± 0.44%' │ '110526 ± 3627.0' │ '8949 ± 0.16%' │ '9048 ± 302' │ 8829 │
│ 2 │ 'inversifyCurrent (Resolved Value)' │ '66749 ± 0.61%' │ '63167 ± 762.00' │ '15360 ± 0.15%' │ '15831 ± 193' │ 14982 │
│ 3 │ 'inversifyCurrent (Jitless) (Resolved Value)' │ '66607 ± 0.62%' │ '63058 ± 872.00' │ '15394 ± 0.15%' │ '15858 ± 220' │ 15014 │
│ 4 │ 'inversify6' │ '6010202 ± 2.72%' │ '5717192 ± 109844' │ '170 ± 1.64%' │ '175 ± 3' │ 167 │
│ 5 │ 'inversify7' │ '299899 ± 0.50%' │ '292034 ± 2826.0' │ '3362 ± 0.22%' │ '3424 ± 33' │ 3335 │
│ 6 │ 'inversify8' │ '109255 ± 0.45%' │ '107110 ± 1552.0' │ '9273 ± 0.15%' │ '9336 ± 134' │ 9153 │
│ 7 │ 'awilix' │ '280913 ± 0.42%' │ '273609 ± 2549.5' │ '3589 ± 0.22%' │ '3655 ± 34' │ 3560 │
│ 8 │ 'NestJS' │ '82575 ± 1.77%' │ '73036 ± 1643.0' │ '13027 ± 0.24%' │ '13692 ± 311' │ 12111 │
│ 9 │ 'tsyringe' │ '215337 ± 0.47%' │ '208919 ± 1783.0' │ '4693 ± 0.20%' │ '4787 ± 41' │ 4644 │
└─────────┴───────────────────────────────────────────────┴───────────────────┴────────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.549x
inversifyCurrent vs inversifyCurrent (Resolved Value) Speedup: 0.902x
inversifyCurrent vs inversifyCurrent (Jitless) (Resolved Value) Speedup: 0.900x
inversifyCurrent vs inversify6 Speedup: 81.766x
inversifyCurrent vs inversify7 Speedup: 4.123x
inversifyCurrent vs inversify8 Speedup: 1.495x
inversifyCurrent vs awilix Speedup: 3.862x
inversifyCurrent vs NestJS Speedup: 1.064x
inversifyCurrent vs tsyringe Speedup: 2.954x
Get complex service with properties in transient scope
┌─────────┬──────────────────────────────┬───────────────────┬───────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼──────────────────────────────┼───────────────────┼───────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '78501 ± 0.72%' │ '73147 ± 511.00' │ '13148 ± 0.20%' │ '13671 ± 96' │ 12739 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '166909 ± 0.55%' │ '163745 ± 2970.5' │ '6076 ± 0.20%' │ '6107 ± 112' │ 5992 │
│ 2 │ 'inversify6' │ '5777895 ± 2.57%' │ '5496458 ± 58704' │ '176 ± 1.46%' │ '182 ± 2' │ 174 │
│ 3 │ 'inversify7' │ '343349 ± 0.60%' │ '333851 ± 3115.0' │ '2941 ± 0.25%' │ '2995 ± 28' │ 2913 │
│ 4 │ 'inversify8' │ '208976 ± 0.69%' │ '203138 ± 1403.0' │ '4866 ± 0.23%' │ '4923 ± 34' │ 4786 │
│ 5 │ 'NestJS' │ '329311 ± 1.87%' │ '289139 ± 8196.0' │ '3258 ± 0.57%' │ '3459 ± 99' │ 3037 │
└─────────┴──────────────────────────────┴───────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 2.164x
inversifyCurrent vs inversify6 Speedup: 74.761x
inversifyCurrent vs inversify7 Speedup: 4.470x
inversifyCurrent vs inversify8 Speedup: 2.702x
inversifyCurrent vs NestJS Speedup: 4.036x
Get complex async service in transient scope
┌─────────┬──────────────────────────────┬───────────────────┬────────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼──────────────────────────────┼───────────────────┼────────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '370860 ± 0.86%' │ '354199 ± 6070.0' │ '2751 ± 0.37%' │ '2823 ± 48' │ 2697 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '395186 ± 0.85%' │ '380479 ± 6222.0' │ '2578 ± 0.35%' │ '2628 ± 43' │ 2531 │
│ 2 │ 'inversify6' │ '5441164 ± 3.61%' │ '4943433 ± 109725' │ '190 ± 2.13%' │ '202 ± 5' │ 184 │
│ 3 │ 'inversify7' │ '699206 ± 0.87%' │ '676028 ± 7293.0' │ '1450 ± 0.45%' │ '1479 ± 16' │ 1431 │
│ 4 │ 'inversify8' │ '396547 ± 0.83%' │ '381040 ± 6136.0' │ '2570 ± 0.36%' │ '2624 ± 42' │ 2522 │
└─────────┴──────────────────────────────┴───────────────────┴────────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.067x
inversifyCurrent vs inversify6 Speedup: 14.446x
inversifyCurrent vs inversify7 Speedup: 1.897x
inversifyCurrent vs inversify8 Speedup: 1.070x[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' │ '249.11 ± 0.16%' │ '231.00 ± 9.00' │ '4156599 ± 0.01%' │ '4329004 ± 162338' │ 4014368 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '248.18 ± 0.14%' │ '231.00 ± 9.00' │ '4175270 ± 0.01%' │ '4329004 ± 162338' │ 4029257 │
│ 2 │ 'inversify6' │ '1000.3 ± 0.31%' │ '912.00 ± 19.00' │ '1056859 ± 0.02%' │ '1096491 ± 22377' │ 999733 │
│ 3 │ 'inversify7' │ '287.88 ± 0.13%' │ '270.00 ± 10.00' │ '3597371 ± 0.01%' │ '3703704 ± 132275' │ 3473632 │
│ 4 │ 'inversify8' │ '249.02 ± 0.13%' │ '231.00 ± 9.00' │ '4159244 ± 0.01%' │ '4329004 ± 162338' │ 4015747 │
│ 5 │ 'awilix' │ '243.27 ± 0.26%' │ '221.00 ± 10.00' │ '4316009 ± 0.01%' │ '4524887 ± 195882' │ 4110584 │
│ 6 │ 'NestJS' │ '326.07 ± 0.28%' │ '301.00 ± 10.00' │ '3208054 ± 0.01%' │ '3322259 ± 106825' │ 3066855 │
│ 7 │ 'tsyringe' │ '298.96 ± 0.31%' │ '271.00 ± 10.00' │ '3520088 ± 0.01%' │ '3690037 ± 131318' │ 3344910 │
└─────────┴──────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 0.996x
inversifyCurrent vs inversify6 Speedup: 3.933x
inversifyCurrent vs inversify7 Speedup: 1.155x
inversifyCurrent vs inversify8 Speedup: 0.999x
inversifyCurrent vs awilix Speedup: 0.963x
inversifyCurrent vs NestJS Speedup: 1.296x
inversifyCurrent vs tsyringe Speedup: 1.181x
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' │ '309.06 ± 1.32%' │ '281.00 ± 10.00' │ '3427112 ± 0.01%' │ '3558719 ± 122293' │ 3235667 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '322.69 ± 0.22%' │ '301.00 ± 9.00' │ '3216476 ± 0.01%' │ '3322259 ± 96453' │ 3098921 │
│ 2 │ 'inversify6' │ '5466.0 ± 0.30%' │ '5059.0 ± 99.00' │ '191080 ± 0.06%' │ '197668 ± 3869' │ 182948 │
│ 3 │ 'inversify7' │ '522.73 ± 0.30%' │ '491.00 ± 10.00' │ '2001125 ± 0.01%' │ '2036660 ± 42342' │ 1913050 │
│ 4 │ 'inversify8' │ '304.89 ± 0.35%' │ '280.00 ± 10.00' │ '3488695 ± 0.01%' │ '3571429 ± 123153' │ 3279914 │
│ 5 │ 'awilix' │ '442.55 ± 0.34%' │ '411.00 ± 10.00' │ '2380225 ± 0.01%' │ '2433090 ± 60676' │ 2259947 │
│ 6 │ 'NestJS' │ '11217 ± 2.27%' │ '9347.0 ± 311.00' │ '101457 ± 0.11%' │ '106986 ± 3659' │ 89151 │
│ 7 │ 'tsyringe' │ '440.91 ± 0.16%' │ '411.00 ± 10.00' │ '2359058 ± 0.01%' │ '2433090 ± 60676' │ 2268058 │
└─────────┴──────────────────────────────┴──────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.065x
inversifyCurrent vs inversify6 Speedup: 17.935x
inversifyCurrent vs inversify7 Speedup: 1.713x
inversifyCurrent vs inversify8 Speedup: 0.982x
inversifyCurrent vs awilix Speedup: 1.440x
inversifyCurrent vs NestJS Speedup: 33.779x
inversifyCurrent vs tsyringe Speedup: 1.453x
Get wide service in transient scope
┌─────────┬──────────────────────────────┬──────────────────┬──────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼──────────────────────────────┼──────────────────┼──────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '573.39 ± 0.29%' │ '541.00 ± 10.00' │ '1809252 ± 0.01%' │ '1848429 ± 34810' │ 1744023 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '954.18 ± 0.11%' │ '912.00 ± 10.00' │ '1074708 ± 0.01%' │ '1096491 ± 12156' │ 1048025 │
│ 2 │ 'inversify6' │ '25032 ± 0.67%' │ '23184 ± 301.00' │ '41666 ± 0.12%' │ '43133 ± 567' │ 39950 │
│ 3 │ 'inversify7' │ '1383.2 ± 0.26%' │ '1313.0 ± 10.00' │ '747412 ± 0.02%' │ '761615 ± 5845' │ 722966 │
│ 4 │ 'inversify8' │ '772.08 ± 0.26%' │ '732.00 ± 10.00' │ '1339342 ± 0.01%' │ '1366120 ± 18921' │ 1295198 │
│ 5 │ 'awilix' │ '1223.8 ± 0.16%' │ '1192.0 ± 11.00' │ '832196 ± 0.01%' │ '838926 ± 7671' │ 817102 │
│ 6 │ 'NestJS' │ '24372 ± 1.21%' │ '21900 ± 410.00' │ '43823 ± 0.13%' │ '45662 ± 861' │ 41032 │
│ 7 │ 'tsyringe' │ '1400.4 ± 0.13%' │ '1342.0 ± 11.00' │ '733186 ± 0.02%' │ '745156 ± 6058' │ 714085 │
└─────────┴──────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.683x
inversifyCurrent vs inversify6 Speedup: 43.422x
inversifyCurrent vs inversify7 Speedup: 2.421x
inversifyCurrent vs inversify8 Speedup: 1.351x
inversifyCurrent vs awilix Speedup: 2.174x
inversifyCurrent vs NestJS Speedup: 41.285x
inversifyCurrent vs tsyringe Speedup: 2.468x
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' │ '265.64 ± 0.26%' │ '251.00 ± 10.00' │ '3899780 ± 0.01%' │ '3984064 ± 152646' │ 3764486 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '277.99 ± 0.16%' │ '261.00 ± 9.00' │ '3725373 ± 0.01%' │ '3831418 ± 127714' │ 3597294 │
│ 2 │ 'inversify6' │ '1033.2 ± 2.14%' │ '931.00 ± 20.00' │ '1042019 ± 0.02%' │ '1074114 ± 23581' │ 967899 │
│ 3 │ 'inversify7' │ '283.75 ± 0.14%' │ '261.00 ± 10.00' │ '3675236 ± 0.01%' │ '3831418 ± 141381' │ 3524239 │
│ 4 │ 'inversify8' │ '263.41 ± 0.18%' │ '250.00 ± 10.00' │ '3947791 ± 0.01%' │ '4000000 ± 153846' │ 3796308 │
│ 5 │ 'awilix' │ '260.66 ± 0.12%' │ '241.00 ± 9.00' │ '3975355 ± 0.01%' │ '4149378 ± 149378' │ 3836422 │
│ 6 │ 'NestJS' │ '332.49 ± 0.20%' │ '311.00 ± 10.00' │ '3135821 ± 0.01%' │ '3215434 ± 106825' │ 3007638 │
│ 7 │ 'tsyringe' │ '305.85 ± 0.35%' │ '281.00 ± 10.00' │ '3441313 ± 0.01%' │ '3558719 ± 122293' │ 3269599 │
└─────────┴──────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.047x
inversifyCurrent vs inversify6 Speedup: 3.743x
inversifyCurrent vs inversify7 Speedup: 1.061x
inversifyCurrent vs inversify8 Speedup: 0.988x
inversifyCurrent vs awilix Speedup: 0.981x
inversifyCurrent vs NestJS Speedup: 1.244x
inversifyCurrent vs tsyringe Speedup: 1.133x
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' │ '68452 ± 0.73%' │ '64420 ± 801.00' │ '15072 ± 0.17%' │ '15523 ± 193' │ 14609 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '118584 ± 0.59%' │ '114824 ± 1623.0' │ '8624 ± 0.20%' │ '8709 ± 122' │ 8434 │
│ 2 │ 'inversifyCurrent (Resolved Value)' │ '67082 ± 0.78%' │ '62987 ± 802.00' │ '15405 ± 0.17%' │ '15876 ± 202' │ 14908 │
│ 3 │ 'inversifyCurrent (Jitless) (Resolved Value)' │ '66351 ± 0.73%' │ '62627 ± 811.00' │ '15521 ± 0.16%' │ '15968 ± 207' │ 15072 │
│ 4 │ 'inversify6' │ '5293311 ± 3.49%' │ '4893637 ± 94116' │ '195 ± 1.87%' │ '204 ± 4' │ 189 │
│ 5 │ 'inversify7' │ '219323 ± 0.51%' │ '213158 ± 1352.5' │ '4609 ± 0.20%' │ '4691 ± 30' │ 4560 │
│ 6 │ 'inversify8' │ '103290 ± 0.48%' │ '99706 ± 1113.0' │ '9829 ± 0.15%' │ '10029 ± 113' │ 9682 │
│ 7 │ 'awilix' │ '291904 ± 0.39%' │ '285463 ± 3732.0' │ '3449 ± 0.20%' │ '3503 ± 46' │ 3426 │
│ 8 │ 'NestJS' │ '83030 ± 1.70%' │ '72836 ± 1713.0' │ '13004 ± 0.27%' │ '13729 ± 327' │ 12044 │
│ 9 │ 'tsyringe' │ '217633 ± 0.47%' │ '211054 ± 1854.0' │ '4644 ± 0.20%' │ '4738 ± 42' │ 4595 │
└─────────┴───────────────────────────────────────────────┴───────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.748x
inversifyCurrent vs inversifyCurrent (Resolved Value) Speedup: 0.978x
inversifyCurrent vs inversifyCurrent (Jitless) (Resolved Value) Speedup: 0.971x
inversifyCurrent vs inversify6 Speedup: 77.434x
inversifyCurrent vs inversify7 Speedup: 3.270x
inversifyCurrent vs inversify8 Speedup: 1.533x
inversifyCurrent vs awilix Speedup: 4.370x
inversifyCurrent vs NestJS Speedup: 1.159x
inversifyCurrent vs tsyringe Speedup: 3.246x
Get complex service with properties in transient scope
┌─────────┬──────────────────────────────┬───────────────────┬────────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼──────────────────────────────┼───────────────────┼────────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '81581 ± 0.84%' │ '76893 ± 962.00' │ '12693 ± 0.19%' │ '13005 ± 161' │ 12258 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '168051 ± 0.67%' │ '161030 ± 1362.0' │ '6087 ± 0.26%' │ '6210 ± 53' │ 5951 │
│ 2 │ 'inversify6' │ '5720995 ± 3.09%' │ '5394882 ± 111238' │ '179 ± 1.72%' │ '185 ± 4' │ 175 │
│ 3 │ 'inversify7' │ '246867 ± 0.69%' │ '237743 ± 1653.0' │ '4114 ± 0.25%' │ '4206 ± 29' │ 4051 │
│ 4 │ 'inversify8' │ '210327 ± 0.70%' │ '204151 ± 1593.0' │ '4838 ± 0.23%' │ '4898 ± 38' │ 4755 │
│ 5 │ 'NestJS' │ '338643 ± 2.01%' │ '297625 ± 9317.0' │ '3183 ± 0.59%' │ '3360 ± 107' │ 2953 │
└─────────┴──────────────────────────────┴───────────────────┴────────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 2.085x
inversifyCurrent vs inversify6 Speedup: 70.970x
inversifyCurrent vs inversify7 Speedup: 3.085x
inversifyCurrent vs inversify8 Speedup: 2.624x
inversifyCurrent vs NestJS Speedup: 3.988x
Get complex async service in transient scope
┌─────────┬──────────────────────────────┬───────────────────┬────────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼──────────────────────────────┼───────────────────┼────────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '376338 ± 0.94%' │ '357827 ± 8410.5' │ '2720 ± 0.41%' │ '2795 ± 66' │ 2658 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '396670 ± 0.83%' │ '382884 ± 7234.0' │ '2570 ± 0.37%' │ '2612 ± 50' │ 2521 │
│ 2 │ 'inversify6' │ '5240857 ± 3.72%' │ '4742996 ± 119714' │ '198 ± 2.08%' │ '211 ± 5' │ 191 │
│ 3 │ 'inversify7' │ '650715 ± 0.78%' │ '631598 ± 9468.0' │ '1555 ± 0.41%' │ '1583 ± 24' │ 1537 │
│ 4 │ 'inversify8' │ '384797 ± 0.89%' │ '368827 ± 6872.0' │ '2657 ± 0.38%' │ '2711 ± 50' │ 2599 │
└─────────┴──────────────────────────────┴───────────────────┴────────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.058x
inversifyCurrent vs inversify6 Speedup: 13.755x
inversifyCurrent vs inversify7 Speedup: 1.749x
inversifyCurrent vs inversify8 Speedup: 1.023x |
Benchmarks results:[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' │ '292.92 ± 0.25%' │ '260.00 ± 11.00' │ '3692419 ± 0.02%' │ '3846154 ± 156117' │ 3413882 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '275.55 ± 0.17%' │ '251.00 ± 11.00' │ '3796479 ± 0.01%' │ '3984064 ± 182603' │ 3629048 │
│ 2 │ 'inversify6' │ '1131.2 ± 0.27%' │ '1061.0 ± 69.00' │ '923712 ± 0.03%' │ '942507 ± 59115' │ 884032 │
│ 3 │ 'inversify7' │ '343.94 ± 0.28%' │ '311.00 ± 20.00' │ '3064856 ± 0.02%' │ '3215434 ± 220992' │ 2907482 │
│ 4 │ 'inversify8' │ '282.01 ± 0.16%' │ '260.00 ± 11.00' │ '3725489 ± 0.01%' │ '3846154 ± 156117' │ 3545964 │
│ 5 │ 'awilix' │ '257.15 ± 0.30%' │ '230.00 ± 10.00' │ '4152576 ± 0.02%' │ '4347826 ± 197629' │ 3888742 │
│ 6 │ 'NestJS' │ '339.13 ± 0.38%' │ '310.00 ± 19.00' │ '3128039 ± 0.01%' │ '3225806 ± 195503' │ 2948743 │
│ 7 │ 'tsyringe' │ '340.67 ± 0.34%' │ '310.00 ± 20.00' │ '3115191 ± 0.02%' │ '3225806 ± 210620' │ 2935376 │
└─────────┴──────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 0.973x
inversifyCurrent vs inversify6 Speedup: 3.997x
inversifyCurrent vs inversify7 Speedup: 1.205x
inversifyCurrent vs inversify8 Speedup: 0.991x
inversifyCurrent vs awilix Speedup: 0.889x
inversifyCurrent vs NestJS Speedup: 1.180x
inversifyCurrent vs tsyringe Speedup: 1.185x
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' │ '328.75 ± 0.29%' │ '291.00 ± 20.00' │ '3239415 ± 0.02%' │ '3436426 ± 220992' │ 3041785 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '374.32 ± 0.27%' │ '341.00 ± 20.00' │ '2813440 ± 0.02%' │ '2932551 ± 162468' │ 2671525 │
│ 2 │ 'inversify6' │ '5667.0 ± 0.32%' │ '5248.0 ± 121.00' │ '183879 ± 0.06%' │ '190549 ± 4497' │ 176460 │
│ 3 │ 'inversify7' │ '595.95 ± 0.14%' │ '551.00 ± 21.00' │ '1749360 ± 0.02%' │ '1814882 ± 71910' │ 1678005 │
│ 4 │ 'inversify8' │ '340.76 ± 0.29%' │ '310.00 ± 20.00' │ '3105562 ± 0.02%' │ '3225806 ± 210620' │ 2934615 │
│ 5 │ 'awilix' │ '461.55 ± 0.35%' │ '421.00 ± 20.00' │ '2283682 ± 0.02%' │ '2375297 ± 118469' │ 2166593 │
│ 6 │ 'NestJS' │ '11471 ± 2.21%' │ '9905.0 ± 370.00' │ '96418 ± 0.10%' │ '100959 ± 3819' │ 87180 │
│ 7 │ 'tsyringe' │ '465.98 ± 0.14%' │ '430.00 ± 20.00' │ '2241598 ± 0.02%' │ '2325581 ± 108286' │ 2146036 │
└─────────┴──────────────────────────────┴──────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.151x
inversifyCurrent vs inversify6 Speedup: 17.617x
inversifyCurrent vs inversify7 Speedup: 1.852x
inversifyCurrent vs inversify8 Speedup: 1.043x
inversifyCurrent vs awilix Speedup: 1.419x
inversifyCurrent vs NestJS Speedup: 33.598x
inversifyCurrent vs tsyringe Speedup: 1.445x
Get wide service in transient scope
┌─────────┬──────────────────────────────┬──────────────────┬──────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼──────────────────────────────┼──────────────────┼──────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '578.43 ± 0.34%' │ '541.00 ± 11.00' │ '1804317 ± 0.01%' │ '1848429 ± 38364' │ 1728826 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '980.17 ± 0.13%' │ '931.00 ± 30.00' │ '1047064 ± 0.02%' │ '1074114 ± 34534' │ 1020235 │
│ 2 │ 'inversify6' │ '24625 ± 0.34%' │ '23165 ± 321.00' │ '41856 ± 0.11%' │ '43169 ± 606' │ 40610 │
│ 3 │ 'inversify7' │ '1695.6 ± 0.28%' │ '1603.0 ± 31.00' │ '609190 ± 0.02%' │ '623830 ± 12302' │ 589773 │
│ 4 │ 'inversify8' │ '769.42 ± 0.30%' │ '721.00 ± 20.00' │ '1349240 ± 0.02%' │ '1386963 ± 37435' │ 1299681 │
│ 5 │ 'awilix' │ '1539.4 ± 0.31%' │ '1462.0 ± 40.00' │ '668734 ± 0.02%' │ '683995 ± 19240' │ 649607 │
│ 6 │ 'NestJS' │ '25898 ± 1.44%' │ '23375 ± 731.00' │ '41287 ± 0.13%' │ '42781 ± 1342' │ 38613 │
│ 7 │ 'tsyringe' │ '1396.1 ± 0.15%' │ '1332.0 ± 30.00' │ '734652 ± 0.02%' │ '750751 ± 16536' │ 716296 │
└─────────┴──────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.723x
inversifyCurrent vs inversify6 Speedup: 43.108x
inversifyCurrent vs inversify7 Speedup: 2.962x
inversifyCurrent vs inversify8 Speedup: 1.337x
inversifyCurrent vs awilix Speedup: 2.698x
inversifyCurrent vs NestJS Speedup: 43.701x
inversifyCurrent vs tsyringe Speedup: 2.456x
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' │ '298.13 ± 0.25%' │ '271.00 ± 11.00' │ '3503343 ± 0.01%' │ '3690037 ± 156117' │ 3354252 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '308.94 ± 0.12%' │ '281.00 ± 11.00' │ '3385583 ± 0.01%' │ '3558719 ± 144985' │ 3236895 │
│ 2 │ 'inversify6' │ '1199.0 ± 1.56%' │ '1121.0 ± 69.00' │ '874264 ± 0.03%' │ '892061 ± 53134' │ 834064 │
│ 3 │ 'inversify7' │ '361.11 ± 0.32%' │ '321.00 ± 20.00' │ '2940340 ± 0.02%' │ '3115265 ± 206994' │ 2769262 │
│ 4 │ 'inversify8' │ '289.70 ± 0.16%' │ '270.00 ± 11.00' │ '3599813 ± 0.01%' │ '3703704 ± 144985' │ 3451819 │
│ 5 │ 'awilix' │ '281.12 ± 0.27%' │ '260.00 ± 19.00' │ '3759788 ± 0.01%' │ '3846154 ± 303224' │ 3557157 │
│ 6 │ 'NestJS' │ '349.25 ± 0.19%' │ '320.00 ± 20.00' │ '2997924 ± 0.02%' │ '3125000 ± 197259' │ 2863249 │
│ 7 │ 'tsyringe' │ '344.98 ± 0.33%' │ '311.00 ± 20.00' │ '3077442 ± 0.02%' │ '3215434 ± 220992' │ 2898679 │
└─────────┴──────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.035x
inversifyCurrent vs inversify6 Speedup: 4.007x
inversifyCurrent vs inversify7 Speedup: 1.191x
inversifyCurrent vs inversify8 Speedup: 0.973x
inversifyCurrent vs awilix Speedup: 0.932x
inversifyCurrent vs NestJS Speedup: 1.169x
inversifyCurrent vs tsyringe Speedup: 1.138x
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' │ '68656 ± 0.60%' │ '65830 ± 550.50' │ '14870 ± 0.14%' │ '15191 ± 128' │ 14566 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '119668 ± 0.50%' │ '114693 ± 1372.0' │ '8526 ± 0.20%' │ '8719 ± 104' │ 8357 │
│ 2 │ 'inversifyCurrent (Resolved Value)' │ '67622 ± 0.57%' │ '64878 ± 531.00' │ '15098 ± 0.14%' │ '15414 ± 127' │ 14789 │
│ 3 │ 'inversifyCurrent (Jitless) (Resolved Value)' │ '67612 ± 0.55%' │ '64868 ± 581.00' │ '15096 ± 0.14%' │ '15416 ± 137' │ 14791 │
│ 4 │ 'inversify6' │ '5108672 ± 2.59%' │ '4834784 ± 39577' │ '199 ± 1.49%' │ '207 ± 2' │ 196 │
│ 5 │ 'inversify7' │ '273731 ± 0.45%' │ '267239 ± 1893.0' │ '3681 ± 0.19%' │ '3742 ± 27' │ 3654 │
│ 6 │ 'inversify8' │ '109662 ± 0.42%' │ '107192 ± 1622.0' │ '9230 ± 0.14%' │ '9329 ± 142' │ 9119 │
│ 7 │ 'awilix' │ '292019 ± 0.34%' │ '285842 ± 2253.0' │ '3443 ± 0.19%' │ '3498 ± 28' │ 3425 │
│ 8 │ 'NestJS' │ '82282 ± 1.67%' │ '74763 ± 1582.0' │ '12922 ± 0.21%' │ '13376 ± 285' │ 12154 │
│ 9 │ 'tsyringe' │ '221706 ± 0.44%' │ '215686 ± 2133.0' │ '4554 ± 0.20%' │ '4636 ± 46' │ 4511 │
└─────────┴───────────────────────────────────────────────┴───────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.744x
inversifyCurrent vs inversifyCurrent (Resolved Value) Speedup: 0.985x
inversifyCurrent vs inversifyCurrent (Jitless) (Resolved Value) Speedup: 0.985x
inversifyCurrent vs inversify6 Speedup: 74.547x
inversifyCurrent vs inversify7 Speedup: 4.040x
inversifyCurrent vs inversify8 Speedup: 1.611x
inversifyCurrent vs awilix Speedup: 4.319x
inversifyCurrent vs NestJS Speedup: 1.151x
inversifyCurrent vs tsyringe Speedup: 3.265x
Get complex service with properties in transient scope
┌─────────┬──────────────────────────────┬───────────────────┬───────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼──────────────────────────────┼───────────────────┼───────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '84022 ± 0.66%' │ '79860 ± 701.00' │ '12192 ± 0.17%' │ '12522 ± 111' │ 11902 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '155808 ± 0.54%' │ '151602 ± 1315.0' │ '6499 ± 0.17%' │ '6596 ± 57' │ 6419 │
│ 2 │ 'inversify6' │ '5505218 ± 2.56%' │ '5223802 ± 44547' │ '185 ± 1.51%' │ '191 ± 2' │ 182 │
│ 3 │ 'inversify7' │ '343331 ± 0.64%' │ '334415 ± 2894.0' │ '2945 ± 0.26%' │ '2990 ± 26' │ 2913 │
│ 4 │ 'inversify8' │ '200799 ± 0.64%' │ '193101 ± 3244.0' │ '5058 ± 0.22%' │ '5179 ± 88' │ 4981 │
│ 5 │ 'NestJS' │ '342897 ± 2.20%' │ '303759 ± 7601.0' │ '3137 ± 0.54%' │ '3292 ± 83' │ 2917 │
└─────────┴──────────────────────────────┴───────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.876x
inversifyCurrent vs inversify6 Speedup: 65.961x
inversifyCurrent vs inversify7 Speedup: 4.140x
inversifyCurrent vs inversify8 Speedup: 2.411x
inversifyCurrent vs NestJS Speedup: 3.887x
Get complex async service in transient scope
┌─────────┬──────────────────────────────┬───────────────────┬────────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼──────────────────────────────┼───────────────────┼────────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '342228 ± 0.93%' │ '324370 ± 8022.0' │ '2997 ± 0.40%' │ '3083 ± 77' │ 2923 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '386703 ± 0.88%' │ '370340 ± 13691' │ '2644 ± 0.40%' │ '2700 ± 101' │ 2587 │
│ 2 │ 'inversify6' │ '5097173 ± 2.68%' │ '4759673 ± 103557' │ '201 ± 1.67%' │ '210 ± 5' │ 197 │
│ 3 │ 'inversify7' │ '684761 ± 0.78%' │ '665445 ± 7070.0' │ '1477 ± 0.41%' │ '1503 ± 16' │ 1461 │
│ 4 │ 'inversify8' │ '355967 ± 0.80%' │ '342292 ± 7781.5' │ '2866 ± 0.35%' │ '2921 ± 67' │ 2810 │
└─────────┴──────────────────────────────┴───────────────────┴────────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.133x
inversifyCurrent vs inversify6 Speedup: 14.945x
inversifyCurrent vs inversify7 Speedup: 2.029x
inversifyCurrent vs inversify8 Speedup: 1.046x[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' │ '269.99 ± 0.17%' │ '250.00 ± 10.00' │ '3869620 ± 0.01%' │ '4000000 ± 166667' │ 3703796 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '261.28 ± 0.14%' │ '240.00 ± 10.00' │ '4012309 ± 0.01%' │ '4166667 ± 181159' │ 3827366 │
│ 2 │ 'inversify6' │ '1082.1 ± 0.31%' │ '1001.0 ± 70.00' │ '978148 ± 0.03%' │ '999001 ± 73960' │ 924169 │
│ 3 │ 'inversify7' │ '300.97 ± 0.12%' │ '280.00 ± 20.00' │ '3476354 ± 0.02%' │ '3571429 ± 274725' │ 3322630 │
│ 4 │ 'inversify8' │ '293.50 ± 0.12%' │ '270.00 ± 11.00' │ '3562694 ± 0.01%' │ '3703704 ± 144985' │ 3407172 │
│ 5 │ 'awilix' │ '255.09 ± 0.25%' │ '230.00 ± 11.00' │ '4169511 ± 0.01%' │ '4347826 ± 198448' │ 3920177 │
│ 6 │ 'NestJS' │ '342.80 ± 0.31%' │ '310.00 ± 11.00' │ '3086835 ± 0.02%' │ '3225806 ± 110542' │ 2917116 │
│ 7 │ 'tsyringe' │ '323.20 ± 0.32%' │ '290.00 ± 20.00' │ '3314566 ± 0.02%' │ '3448276 ± 241761' │ 3094067 │
└─────────┴──────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 0.964x
inversifyCurrent vs inversify6 Speedup: 3.956x
inversifyCurrent vs inversify7 Speedup: 1.113x
inversifyCurrent vs inversify8 Speedup: 1.086x
inversifyCurrent vs awilix Speedup: 0.928x
inversifyCurrent vs NestJS Speedup: 1.254x
inversifyCurrent vs tsyringe Speedup: 1.167x
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' │ '322.98 ± 1.29%' │ '291.00 ± 19.00' │ '3298882 ± 0.02%' │ '3436426 ± 210620' │ 3096193 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '373.74 ± 0.23%' │ '350.00 ± 19.00' │ '2793016 ± 0.01%' │ '2857143 ± 161725' │ 2675646 │
│ 2 │ 'inversify6' │ '5640.9 ± 0.50%' │ '5258.0 ± 130.00' │ '184443 ± 0.06%' │ '190186 ± 4821' │ 177278 │
│ 3 │ 'inversify7' │ '527.48 ± 0.31%' │ '481.00 ± 30.00' │ '2002133 ± 0.02%' │ '2079002 ± 138293' │ 1895806 │
│ 4 │ 'inversify8' │ '350.89 ± 0.25%' │ '320.00 ± 19.00' │ '3029124 ± 0.02%' │ '3125000 ± 197259' │ 2849917 │
│ 5 │ 'awilix' │ '455.77 ± 0.32%' │ '420.00 ± 11.00' │ '2301361 ± 0.02%' │ '2380952 ± 60767' │ 2194083 │
│ 6 │ 'NestJS' │ '11467 ± 2.14%' │ '9935.0 ± 361.00' │ '96304 ± 0.10%' │ '100654 ± 3717' │ 87210 │
│ 7 │ 'tsyringe' │ '448.30 ± 0.14%' │ '411.00 ± 20.00' │ '2335317 ± 0.02%' │ '2433090 ± 124455' │ 2230639 │
└─────────┴──────────────────────────────┴──────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.181x
inversifyCurrent vs inversify6 Speedup: 17.886x
inversifyCurrent vs inversify7 Speedup: 1.648x
inversifyCurrent vs inversify8 Speedup: 1.089x
inversifyCurrent vs awilix Speedup: 1.433x
inversifyCurrent vs NestJS Speedup: 34.255x
inversifyCurrent vs tsyringe Speedup: 1.413x
Get wide service in transient scope
┌─────────┬──────────────────────────────┬──────────────────┬──────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼──────────────────────────────┼──────────────────┼──────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '581.15 ± 0.34%' │ '550.00 ± 19.00' │ '1790393 ± 0.01%' │ '1818182 ± 65057' │ 1720713 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '962.70 ± 0.13%' │ '912.00 ± 21.00' │ '1066073 ± 0.02%' │ '1096491 ± 25843' │ 1038740 │
│ 2 │ 'inversify6' │ '24890 ± 0.35%' │ '23335 ± 341.00' │ '41505 ± 0.11%' │ '42854 ± 634' │ 40178 │
│ 3 │ 'inversify7' │ '1368.6 ± 0.27%' │ '1282.0 ± 21.00' │ '757735 ± 0.02%' │ '780031 ± 12990' │ 730665 │
│ 4 │ 'inversify8' │ '767.49 ± 0.29%' │ '731.00 ± 20.00' │ '1348656 ± 0.01%' │ '1367989 ± 36505' │ 1302942 │
│ 5 │ 'awilix' │ '1404.9 ± 0.31%' │ '1332.0 ± 50.00' │ '733997 ± 0.02%' │ '750751 ± 27162' │ 711808 │
│ 6 │ 'NestJS' │ '25524 ± 1.34%' │ '23215 ± 571.00' │ '41661 ± 0.12%' │ '43076 ± 1067' │ 39179 │
│ 7 │ 'tsyringe' │ '1361.2 ± 0.13%' │ '1292.0 ± 30.00' │ '752951 ± 0.02%' │ '773994 ± 17564' │ 734663 │
└─────────┴──────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.679x
inversifyCurrent vs inversify6 Speedup: 43.137x
inversifyCurrent vs inversify7 Speedup: 2.363x
inversifyCurrent vs inversify8 Speedup: 1.328x
inversifyCurrent vs awilix Speedup: 2.439x
inversifyCurrent vs NestJS Speedup: 42.976x
inversifyCurrent vs tsyringe Speedup: 2.378x
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' │ '293.66 ± 0.26%' │ '270.00 ± 10.00' │ '3558927 ± 0.01%' │ '3703704 ± 142450' │ 3405278 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '287.15 ± 0.16%' │ '261.00 ± 11.00' │ '3666120 ± 0.01%' │ '3831418 ± 168582' │ 3482505 │
│ 2 │ 'inversify6' │ '1073.8 ± 2.00%' │ '991.00 ± 70.00' │ '987027 ± 0.03%' │ '1009082 ± 75517' │ 931246 │
│ 3 │ 'inversify7' │ '302.92 ± 0.13%' │ '271.00 ± 11.00' │ '3484796 ± 0.02%' │ '3690037 ± 156117' │ 3301219 │
│ 4 │ 'inversify8' │ '284.04 ± 0.15%' │ '260.00 ± 11.00' │ '3691773 ± 0.01%' │ '3846154 ± 156117' │ 3520610 │
│ 5 │ 'awilix' │ '285.74 ± 0.25%' │ '260.00 ± 19.00' │ '3704340 ± 0.02%' │ '3846154 ± 274725' │ 3499678 │
│ 6 │ 'NestJS' │ '338.16 ± 0.15%' │ '311.00 ± 11.00' │ '3081545 ± 0.01%' │ '3215434 ± 117899' │ 2957151 │
│ 7 │ 'tsyringe' │ '318.42 ± 0.35%' │ '290.00 ± 19.00' │ '3339548 ± 0.02%' │ '3448276 ± 241761' │ 3140555 │
└─────────┴──────────────────────────────┴──────────────────┴──────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 0.971x
inversifyCurrent vs inversify6 Speedup: 3.606x
inversifyCurrent vs inversify7 Speedup: 1.021x
inversifyCurrent vs inversify8 Speedup: 0.964x
inversifyCurrent vs awilix Speedup: 0.961x
inversifyCurrent vs NestJS Speedup: 1.155x
inversifyCurrent vs tsyringe Speedup: 1.066x
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' │ '67897 ± 0.55%' │ '64938 ± 561.00' │ '15047 ± 0.15%' │ '15399 ± 132' │ 14729 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '121074 ± 0.41%' │ '118119 ± 1391.0' │ '8342 ± 0.14%' │ '8466 ± 100' │ 8260 │
│ 2 │ 'inversifyCurrent (Resolved Value)' │ '67373 ± 0.58%' │ '64517 ± 662.00' │ '15157 ± 0.14%' │ '15500 ± 160' │ 14843 │
│ 3 │ 'inversifyCurrent (Jitless) (Resolved Value)' │ '68434 ± 0.55%' │ '65660 ± 1293.0' │ '14912 ± 0.14%' │ '15230 ± 301' │ 14613 │
│ 4 │ 'inversify6' │ '5459587 ± 2.70%' │ '5167647 ± 38067' │ '187 ± 1.49%' │ '194 ± 1' │ 184 │
│ 5 │ 'inversify7' │ '233123 ± 0.70%' │ '224610 ± 1592.0' │ '4360 ± 0.24%' │ '4452 ± 32' │ 4290 │
│ 6 │ 'inversify8' │ '109029 ± 0.45%' │ '106231 ± 2093.0' │ '9282 ± 0.14%' │ '9413 ± 186' │ 9172 │
│ 7 │ 'awilix' │ '294082 ± 0.34%' │ '288145 ± 2514.0' │ '3419 ± 0.19%' │ '3470 ± 30' │ 3401 │
│ 8 │ 'NestJS' │ '82142 ± 1.64%' │ '73907 ± 1667.5' │ '12954 ± 0.22%' │ '13531 ± 308' │ 12174 │
│ 9 │ 'tsyringe' │ '219401 ± 0.47%' │ '212240 ± 1592.5' │ '4611 ± 0.22%' │ '4712 ± 36' │ 4558 │
└─────────┴───────────────────────────────────────────────┴───────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.804x
inversifyCurrent vs inversifyCurrent (Resolved Value) Speedup: 0.993x
inversifyCurrent vs inversifyCurrent (Jitless) (Resolved Value) Speedup: 1.009x
inversifyCurrent vs inversify6 Speedup: 80.677x
inversifyCurrent vs inversify7 Speedup: 3.451x
inversifyCurrent vs inversify8 Speedup: 1.621x
inversifyCurrent vs awilix Speedup: 4.401x
inversifyCurrent vs NestJS Speedup: 1.162x
inversifyCurrent vs tsyringe Speedup: 3.263x
Get complex service with properties in transient scope
┌─────────┬──────────────────────────────┬───────────────────┬───────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼──────────────────────────────┼───────────────────┼───────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '82703 ± 0.72%' │ '77377 ± 816.50' │ '12479 ± 0.20%' │ '12924 ± 137' │ 12092 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '167620 ± 0.58%' │ '164007 ± 4506.0' │ '6052 ± 0.20%' │ '6097 ± 171' │ 5966 │
│ 2 │ 'inversify6' │ '5650039 ± 3.31%' │ '5252568 ± 46571' │ '182 ± 1.82%' │ '190 ± 2' │ 177 │
│ 3 │ 'inversify7' │ '275061 ± 0.92%' │ '263217 ± 2383.0' │ '3716 ± 0.29%' │ '3799 ± 35' │ 3636 │
│ 4 │ 'inversify8' │ '210866 ± 0.70%' │ '202726 ± 3585.0' │ '4834 ± 0.26%' │ '4933 ± 88' │ 4743 │
│ 5 │ 'NestJS' │ '342514 ± 1.89%' │ '301280 ± 8527.5' │ '3122 ± 0.58%' │ '3319 ± 96' │ 2920 │
└─────────┴──────────────────────────────┴───────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 2.062x
inversifyCurrent vs inversify6 Speedup: 68.690x
inversifyCurrent vs inversify7 Speedup: 3.358x
inversifyCurrent vs inversify8 Speedup: 2.581x
inversifyCurrent vs NestJS Speedup: 3.997x
Get complex async service in transient scope
┌─────────┬──────────────────────────────┬───────────────────┬───────────────────┬────────────────────────┬────────────────────────┬─────────┐
│ (index) │ Task name │ Latency avg (ns) │ Latency med (ns) │ Throughput avg (ops/s) │ Throughput med (ops/s) │ Samples │
├─────────┼──────────────────────────────┼───────────────────┼───────────────────┼────────────────────────┼────────────────────────┼─────────┤
│ 0 │ 'inversifyCurrent' │ '360168 ± 0.85%' │ '342798 ± 12799' │ '2842 ± 0.42%' │ '2917 ± 110' │ 2777 │
│ 1 │ 'inversifyCurrent (Jitless)' │ '398492 ± 0.88%' │ '381436 ± 12554' │ '2566 ± 0.41%' │ '2622 ± 88' │ 2510 │
│ 2 │ 'inversify6' │ '5105825 ± 3.30%' │ '4698398 ± 59494' │ '201 ± 1.81%' │ '213 ± 3' │ 196 │
│ 3 │ 'inversify7' │ '632758 ± 0.89%' │ '616181 ± 6320.0' │ '1601 ± 0.39%' │ '1623 ± 17' │ 1581 │
│ 4 │ 'inversify8' │ '407840 ± 1.43%' │ '371511 ± 10136' │ '2582 ± 0.59%' │ '2692 ± 74' │ 2452 │
└─────────┴──────────────────────────────┴───────────────────┴───────────────────┴────────────────────────┴────────────────────────┴─────────┘
inversifyCurrent vs inversifyCurrent (Jitless) Speedup: 1.108x
inversifyCurrent vs inversify6 Speedup: 14.108x
inversifyCurrent vs inversify7 Speedup: 1.775x
inversifyCurrent vs inversify8 Speedup: 1.101x |
Context
Summary by CodeRabbit
jitlesscontainer option (defaults to enabled) for CSP-compatible dependency resolution without runtime code generation.