You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Using @service or @Inject to inject services can lead to performance issues when calling api (although not using them).
i used autocannon for benchmarking
Full command: autocannon -t12 -c1000 -d30 http://localhost:3000/ping
I tried to inject services into the controller (ping.controller). The more services I import and the larger the project, the more req in seconds decreases
Logs
No response
Additional information
I ran the project on 8 CPUs and tried it multiple times. These are the average results I got.
- Without Injection
I ran the autocannon test and got around 680k requests in 30 seconds.
- With `@service` (around 37 `@service` with the same service file)
I got around 420k requests in 30 seconds.
- With `@inject` (around 37 `@inject` with the same service file)
For me, this is to be expected.... Using DI indeed runs more code than not using it. So it is normal that it can slow down a bit. What I find very interesting tough is the fact that @Inject seems way faster than @service which is simply a sugar coated inject...
Pre initializing services during application startup and apply correct scope to services could reduce the api response delays as each api request will try to initialize all services that are injected which is not of global scope
Describe the bug
Using @service or @Inject to inject services can lead to performance issues when calling api (although not using them).
i used autocannon for benchmarking
Full command:
autocannon -t12 -c1000 -d30 http://localhost:3000/ping
I tried to inject services into the controller (ping.controller). The more services I import and the larger the project, the more req in seconds decreases
Logs
No response
Additional information
I ran the project on 8 CPUs and tried it multiple times. These are the average results I got.
- Without Injection
I ran the autocannon test and got around 680k requests in 30 seconds.- With `@service` (around 37 `@service` with the same service file)
I got around 420k requests in 30 seconds.- With `@inject` (around 37 `@inject` with the same service file)
I got around 600k requests in 30 seconds.Reproduction
https://github.com/u3ih/loopback-benchmarking
The text was updated successfully, but these errors were encountered: