The performance (time and allocation) results came from the Rails development log running on a 2018 Macbook Pro. These numbers are the average of 3 runs excluding the initial request after a commit checkout (because that request takes a lot of time loading the new code). With this in mind, they don't represent the values of an application running on production or under stress. However, as all the approaches were tested under the same hardware and environment conditions, the proportions between them still stand as useful when making comparisons.
https://github.com/ableco/jg-stack-exploration/commit/42d7ce7050d4cb092ed7b6562e190430487edd70
| Endpoint | Time | Allocations |
|---|---|---|
/chores |
161ms | 85,255 |
/reminders |
207ms | 109,402 |
/companies |
289ms | 139,661 |
/investments |
685ms | 268,959 |
| Total: | 1.342s | 600,277 |
https://github.com/ableco/jg-stack-exploration/commit/48c0df3c697fdd4c7a132604c8787437112c96a4
| Endpoint | Time | Allocations |
|---|---|---|
/chores |
114ms | 63,618 |
/reminders |
155ms | 81,788 |
/companies |
120ms | 81,278 |
/investments |
283ms | 167,379 |
| Total: | 672ms | 394,063 |
https://github.com/ableco/jg-stack-exploration/commit/416c7a5987fcb454d78d52dfebe3b23ee0139cbf
| Endpoint | Time | Allocations |
|---|---|---|
/chores |
72ms | 47,995 |
/reminders |
49ms | 35,108 |
/companies |
10ms | 8,055 |
/investments |
47ms | 34,939 |
| Total: | 178ms | 126,097 |
https://github.com/ableco/jg-stack-exploration/commit/2650fcb27ad2bc6e111d37afc0bc9a274a7f736c
| Query | Time | Allocations |
|---|---|---|
chores |
339ms | 195,795 |
reminders |
223ms | 125,638 |
companies |
22ms | 8,209 |
investments |
300ms | 186,875 |
| Total: | 884ms | 516,517 |
https://github.com/ableco/jg-stack-exploration/commit/ab67804ad90d7be659fd4bbd7a7efee306cdf74e
| Query | Time | Allocations |
|---|---|---|
nav bar |
537ms | 302,920 |
investments |
299ms | 186,001 |
| Total: | 836ms | 488,921 |
https://github.com/ableco/jg-stack-exploration/commit/7ce79a599b793f1e6c34e71871f016821efdaea3
| Query | Time | Allocations |
|---|---|---|
nav bar |
510ms | 328,253 |
investments |
318ms | 186,000 |
| Total: | 828ms | 514,253 |
It's the same link as before: https://github.com/ableco/jg-stack-exploration/commit/7ce79a599b793f1e6c34e71871f016821efdaea3. The difference is the includes calls.
| Query | Time | Allocations |
|---|---|---|
nav bar |
84ms | 39,961 |
investments |
60ms | 27,682 |
| Total: | 144ms | 67,643 |
https://github.com/ableco/jg-stack-exploration/commit/7e4ab99ff03dc3085d8a5b53dca2b2b918cfd7a2
This is the library used in this commit: https://github.com/exAspArk/batch-loader#graphql-example.
| Query | Time | Allocations |
|---|---|---|
nav bar |
70ms | 34,353 |
investments |
77ms | 28,369 |
| Total: | 147ms | 62,722 |