New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generic optimizations #1688
Comments
Running the benchmarking scripts we get this: {"scenario":"x100: basic build regular","operation":"unmaker","numbers":{"100-10000":{"min":3530,"max":4252,"avg":3812.55,"total":76251,"runs":[3845,3814,4035,3546,3530,4252,3667,3891,3708,3748,3654,3863,3626,3953,4120,3823,4090,3678,3553,3855]}},"meta":{}}
{"scenario":"x100: basic build physical","operation":"unmaker","numbers":{"100-10000":{"min":3542,"max":4268,"avg":3819.15,"total":76383,"runs":[3901,3757,4021,3589,3542,4268,3688,3842,3757,3769,3671,3891,3637,3963,4137,3745,4067,3657,3600,3881]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-create","numbers":{"100-10000":{"min":10,"max":46,"avg":14.38,"total":1438,"runs":[24,15,17,20,13,14,13,15,14,15,12,16,15,16,39,16,13,15,26,13,14,19,15,13,14,13,14,13,13,12,14,22,14,14,12,11,13,17,18,21,15,14,15,12,14,13,21,15,13,12,13,13,13,13,12,12,46,13,12,12,13,12,14,15,14,15,16,13,12,11,10,11,11,12,12,11,12,13,11,13,14,13,11,11,14,13,13,12,11,12,13,13,12,12,11,14,11,12,12,13]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-lookup","numbers":{"100-10000":{"min":8,"max":24,"avg":10.21,"total":1021,"runs":[15,12,11,22,13,15,11,10,16,9,9,8,10,10,15,10,10,9,13,9,11,11,10,9,9,9,9,9,9,10,8,9,10,9,10,10,10,13,12,12,9,9,9,10,9,10,14,10,9,11,9,9,9,8,9,9,24,12,11,10,8,10,9,16,10,9,9,11,9,9,9,9,9,9,9,9,8,8,8,8,13,9,10,9,9,8,9,9,9,11,11,9,9,9,9,9,9,8,9,11]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-update","numbers":{"100-10000":{"min":13,"max":37,"avg":17.42,"total":1742,"runs":[18,25,19,37,22,19,20,20,22,17,19,18,17,21,18,15,16,20,16,18,17,19,18,17,17,16,16,16,17,16,18,17,18,19,17,15,19,25,24,17,17,18,17,15,15,16,21,18,17,15,19,16,15,15,15,14,20,15,16,14,17,16,16,17,15,18,15,16,17,15,15,13,15,15,15,14,15,16,16,18,17,17,33,18,17,17,18,14,17,17,20,15,17,15,16,15,15,14,15,18]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-delete","numbers":{"100-10000":{"min":9,"max":22,"avg":11.49,"total":1149,"runs":[11,15,13,20,15,12,12,12,14,11,12,13,11,10,13,11,12,13,11,11,19,13,22,10,11,9,11,10,10,11,11,10,10,11,11,12,14,13,14,12,15,12,11,12,11,10,11,11,13,12,12,11,9,9,10,9,14,11,12,12,9,11,10,12,10,16,10,11,11,9,9,10,9,11,11,11,10,9,9,10,10,9,15,13,11,11,9,11,12,11,10,10,11,11,9,11,10,11,12,11]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-create","numbers":{"100-10000":{"min":10,"max":56,"avg":14.24,"total":1424,"runs":[21,15,35,13,15,14,18,13,14,15,15,14,14,16,19,13,19,16,13,13,13,12,12,14,13,12,14,14,13,15,19,17,17,13,12,14,14,14,13,12,16,14,11,11,56,13,12,12,12,14,14,15,11,14,13,14,10,12,12,11,11,12,14,14,12,13,13,13,13,11,13,12,14,11,13,12,12,13,18,13,11,22,12,12,13,13,13,12,12,13,16,13,13,13,13,16,13,12,13,13]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-lookup","numbers":{"100-10000":{"min":10,"max":88,"avg":13.16,"total":1316,"runs":[88,17,12,17,12,13,13,12,11,13,15,12,11,13,12,11,14,13,12,11,11,13,14,12,12,12,12,11,13,13,15,13,12,14,13,13,17,15,13,13,13,11,11,12,16,11,13,12,12,11,14,14,13,11,12,10,12,11,13,12,11,10,12,12,11,15,12,13,10,12,12,11,11,12,14,11,11,11,11,12,12,14,13,12,12,12,12,12,12,13,13,12,12,11,12,12,13,11,12,13]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-update","numbers":{"100-10000":{"min":19,"max":47,"avg":23.57,"total":2357,"runs":[30,36,26,24,27,22,23,21,24,21,35,24,22,23,21,23,27,21,21,22,22,19,21,23,29,22,22,24,24,28,32,25,23,23,23,23,30,23,23,22,22,20,21,19,28,21,20,21,21,22,24,26,20,21,21,20,20,22,21,20,20,21,25,21,43,23,21,22,22,21,26,21,21,22,21,21,20,25,21,47,23,23,23,24,22,25,26,22,23,23,23,22,23,22,27,25,26,23,21,23]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-delete","numbers":{"100-10000":{"min":14,"max":28,"avg":17.1,"total":1710,"runs":[18,27,23,16,17,24,16,16,16,16,28,16,15,25,15,19,17,27,18,15,15,15,14,16,18,15,16,17,19,21,21,19,19,17,15,17,20,16,16,17,16,16,14,17,17,18,14,16,18,24,15,21,19,16,14,15,14,15,16,17,15,17,20,15,16,18,18,16,19,18,16,16,15,15,16,17,14,19,16,14,19,16,15,14,15,16,17,16,15,19,18,15,15,16,19,15,15,16,15,15]}},"meta":{}} Looks like RBAC resource building has a gigantic memory footprint |
Drafting a fix where we cache RBAC resources to hashmaps, we get to this {"special":"delimiter run line","ts":"2024-02-09T09:13:34.069Z"}
{"scenario":"x100: basic build regular","operation":"unmaker","numbers":{"100-10000":{"min":3058,"max":6592,"avg":3688.9,"total":73778,"runs":[3607,3221,3339,3237,3082,3614,3102,3793,4850,3076,3058,6592,3549,3070,3231,3516,3256,5184,4301,3100]}},"meta":{}}
{"scenario":"x100: basic build physical","operation":"unmaker","numbers":{"100-10000":{"min":3077,"max":6610,"avg":3701.6,"total":74032,"runs":[3623,3173,3323,3222,3130,3643,3113,3805,4867,3086,3077,6610,3566,3081,3241,3532,3269,5198,4322,3151]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-create","numbers":{"100-10000":{"min":10,"max":35,"avg":13.21,"total":1321,"runs":[22,15,14,15,14,22,14,15,19,13,12,17,14,16,16,17,13,13,12,15,13,13,12,13,14,35,12,14,12,13,12,12,13,12,14,12,15,17,13,12,13,11,12,11,11,10,11,11,13,13,12,10,11,11,11,10,11,11,12,12,21,11,11,11,12,11,11,12,11,11,12,11,12,14,15,12,11,12,11,11,12,11,11,11,12,13,10,12,20,11,12,14,30,13,13,12,10,11,11,11]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-lookup","numbers":{"100-10000":{"min":7,"max":24,"avg":9.65,"total":965,"runs":[12,12,11,9,9,10,10,11,15,10,14,14,9,9,12,9,8,9,9,8,11,9,9,9,7,21,8,11,10,9,9,9,9,10,10,9,24,9,9,10,9,10,9,7,7,8,8,9,8,9,8,8,7,9,7,9,9,8,8,8,10,11,9,9,9,9,8,8,9,7,8,9,8,13,11,9,10,8,9,9,9,9,8,9,9,8,9,8,22,9,8,9,16,12,9,8,9,8,7,9]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-update","numbers":{"100-10000":{"min":13,"max":54,"avg":16.83,"total":1683,"runs":[18,21,19,17,16,18,20,18,19,16,16,18,15,20,20,17,18,21,18,16,16,17,13,15,17,26,17,19,14,16,16,20,15,15,15,16,31,18,16,14,16,17,15,15,14,17,15,14,15,15,16,15,14,14,15,14,15,14,14,17,30,14,15,14,15,15,14,14,15,16,16,14,15,54,26,15,15,15,14,15,17,14,14,14,14,16,14,15,26,14,17,15,19,18,15,15,16,13,14,14]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-delete","numbers":{"100-10000":{"min":8,"max":45,"avg":11.64,"total":1164,"runs":[13,14,14,10,35,16,13,14,13,12,10,11,12,13,18,12,10,13,11,11,11,10,12,10,11,13,11,12,11,10,11,10,12,10,11,11,30,10,11,11,10,10,10,9,10,11,9,9,10,10,9,10,10,10,10,9,10,12,9,45,9,17,9,10,10,9,9,9,10,10,9,9,12,24,10,9,10,9,11,9,9,11,10,9,9,10,9,10,24,10,10,10,10,13,9,8,9,8,9,8]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-create","numbers":{"100-10000":{"min":10,"max":36,"avg":13.05,"total":1305,"runs":[17,15,16,36,18,17,17,13,17,14,15,19,13,15,15,14,13,12,12,12,12,15,13,14,11,12,12,12,14,14,12,12,12,12,12,11,12,11,11,12,12,12,12,13,11,13,11,15,11,12,11,14,12,12,12,12,12,13,17,12,13,12,11,11,12,12,11,12,12,12,28,12,12,15,14,11,12,10,10,13,10,11,11,17,11,10,11,12,11,11,14,12,12,10,10,11,12,12,15,12]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-lookup","numbers":{"100-10000":{"min":9,"max":71,"avg":12.51,"total":1251,"runs":[71,17,10,18,13,13,15,12,13,12,14,18,11,14,11,12,11,11,11,30,12,15,12,12,12,12,12,11,28,13,13,13,12,11,10,11,11,10,10,10,11,10,10,10,11,10,11,22,12,11,11,10,11,11,10,11,11,13,13,10,11,10,11,11,10,11,10,10,10,10,10,10,10,12,12,10,11,11,10,9,10,10,10,23,10,11,10,10,10,11,11,10,10,11,10,10,10,12,15,12]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-update","numbers":{"100-10000":{"min":17,"max":45,"avg":21.82,"total":2182,"runs":[24,26,20,24,25,27,21,25,24,22,26,23,21,25,23,24,22,21,20,41,21,23,20,21,23,21,22,21,43,21,21,21,22,19,20,21,19,22,21,19,19,20,19,20,19,19,32,23,22,19,20,19,18,20,19,19,20,45,31,19,19,19,20,21,18,21,19,19,20,31,20,21,28,22,22,19,17,17,18,18,21,19,19,24,19,20,22,21,18,19,20,20,19,20,21,20,18,22,23,21]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-delete","numbers":{"100-10000":{"min":12,"max":42,"avg":16.02,"total":1602,"runs":[18,17,15,18,19,23,16,16,17,17,22,18,15,15,13,16,16,16,17,18,17,15,15,18,18,15,16,15,25,17,15,15,14,16,14,15,14,16,15,12,14,13,14,15,15,14,42,15,15,15,13,15,14,14,14,15,17,37,13,13,13,15,14,14,13,13,14,13,15,31,14,17,28,20,16,13,13,15,18,14,13,13,21,14,12,13,13,13,12,19,15,13,14,13,13,13,14,17,15,13]}},"meta":{}} Much better memory wise, performance wise, about the same. |
Drafting a more proper solution (using a trie -- {"special":"delimiter run line","ts":"2024-02-15T14:30:39.610Z"}
{"scenario":"x100: basic build regular","operation":"unmaker","numbers":{"100-10000":{"min":2788,"max":5352,"avg":3380.85,"total":67617,"runs":[4326,3926,3171,3191,3352,3036,3055,3409,3033,5352,3077,2990,3237,2788,2888,3681,2896,2954,4386,2869]}},"meta":{}}
{"scenario":"x100: basic build physical","operation":"unmaker","numbers":{"100-10000":{"min":2803,"max":5366,"avg":3392.9,"total":67858,"runs":[4340,3929,3185,3199,3366,3042,3065,3419,3044,5366,3092,3000,3244,2803,2893,3690,2934,2991,4336,2920]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-create","numbers":{"100-10000":{"min":11,"max":38,"avg":14.05,"total":1405,"runs":[19,13,15,13,16,23,34,14,14,13,15,15,14,15,12,14,15,12,15,20,14,13,14,12,16,14,13,14,15,14,13,13,14,15,15,20,13,14,14,12,16,14,14,12,16,12,16,12,13,16,11,12,12,17,15,13,11,12,11,13,24,12,22,13,15,12,13,14,12,11,11,11,12,11,11,12,14,14,13,11,12,14,12,11,12,12,12,12,38,12,13,11,12,11,11,13,12,12,11,13]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-lookup","numbers":{"100-10000":{"min":8,"max":17,"avg":9.69,"total":969,"runs":[14,9,10,10,10,11,9,10,10,11,10,12,9,9,9,9,9,11,9,12,9,10,9,9,9,11,11,9,9,11,10,12,11,10,10,10,10,10,10,9,10,9,9,11,11,8,9,9,8,11,9,10,10,9,9,11,11,9,8,11,12,11,17,8,8,10,12,9,8,8,9,10,10,8,9,9,8,8,9,9,9,8,9,9,9,9,8,9,17,8,8,8,10,8,9,8,10,9,8,10]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-update","numbers":{"100-10000":{"min":14,"max":36,"avg":17.34,"total":1734,"runs":[20,18,15,21,17,36,27,20,22,19,23,33,16,17,18,22,17,16,15,18,20,18,15,18,17,19,14,15,17,16,21,16,16,18,19,14,16,16,18,18,18,15,16,17,17,14,16,15,20,16,17,16,17,17,16,14,15,16,16,20,14,27,26,16,16,15,16,14,17,16,15,15,16,16,15,14,15,17,17,15,14,15,17,15,14,18,17,16,25,15,14,16,17,15,15,15,17,18,15,15]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-delete","numbers":{"100-10000":{"min":10,"max":49,"avg":12.69,"total":1269,"runs":[12,12,21,12,13,26,12,10,10,11,16,19,13,11,12,16,18,11,12,10,18,10,13,14,11,16,12,13,12,12,16,10,15,13,11,12,13,12,13,10,11,11,15,13,12,12,11,12,13,11,11,11,12,15,11,11,11,11,11,15,10,49,11,25,11,10,10,12,10,12,11,10,11,12,11,10,12,10,10,12,10,11,11,11,11,11,10,25,10,11,11,10,11,11,11,11,10,10,10,11]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-create","numbers":{"100-10000":{"min":11,"max":35,"avg":13.37,"total":1337,"runs":[17,14,15,12,35,13,13,14,21,18,12,12,21,17,14,16,18,13,11,11,16,12,13,15,15,12,15,14,13,13,13,12,14,12,12,14,13,12,14,13,12,12,15,13,12,13,14,16,11,21,12,13,12,14,12,14,12,12,11,12,11,12,12,12,11,11,12,11,11,11,25,12,12,11,13,12,13,13,13,11,12,12,11,11,11,12,12,12,11,12,12,11,12,12,12,11,13,11,19,12]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-lookup","numbers":{"100-10000":{"min":10,"max":46,"avg":12.93,"total":1293,"runs":[46,13,13,13,18,15,12,14,15,13,13,14,13,11,12,14,17,12,12,14,14,12,12,13,14,12,14,13,13,12,12,13,13,13,14,13,13,12,11,13,11,14,16,12,10,10,13,21,11,24,11,11,13,11,12,11,10,12,12,12,12,11,12,11,13,10,10,10,12,12,20,12,10,12,11,11,12,12,10,17,22,11,11,10,11,10,10,11,11,11,11,11,11,11,10,11,11,14,16,12]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-update","numbers":{"100-10000":{"min":18,"max":36,"avg":21.92,"total":2192,"runs":[20,21,21,32,33,25,27,24,27,21,21,22,22,22,21,21,21,21,25,22,23,22,24,22,22,22,24,24,25,20,22,23,23,20,23,23,21,19,24,19,23,21,28,21,21,23,21,24,35,27,36,20,21,19,20,19,20,22,21,18,20,21,19,20,19,22,20,20,18,23,19,22,21,21,20,21,20,20,20,21,21,20,19,20,22,20,20,20,23,20,20,21,21,20,21,20,21,23,19,20]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-delete","numbers":{"100-10000":{"min":12,"max":50,"avg":17.7,"total":1770,"runs":[17,32,19,32,26,17,18,19,29,21,17,19,16,17,23,20,18,17,21,18,17,17,16,18,21,19,19,17,19,19,17,19,16,20,21,15,16,17,22,22,16,19,17,15,16,14,19,15,50,16,17,17,15,16,17,15,15,14,16,15,16,18,17,13,16,15,17,17,16,48,14,14,14,14,15,15,16,15,17,15,14,15,15,12,16,13,14,15,14,14,16,15,15,15,15,15,15,15,13,15]}},"meta":{}} The package performance looks like this:
|
Next up, this looks like a sizeable chunk {"special":"delimiter run line","ts":"2024-02-15T12:47:03.370Z"}
{"scenario":"x100: basic build physical","operation":"unmaker","numbers":{"100-10000":{"min":3236,"max":4508,"avg":3600.3,"total":72006,"runs":[3937,3902,3569,3386,3644,3497,3539,3328,3449,4508,3491,3507,3347,3647,3236,3290,3612,3389,4372,3356]}},"meta":{}}
{"scenario":"x100: basic build regular","operation":"unmaker","numbers":{"100-10000":{"min":3192,"max":4522,"avg":3608.7,"total":72174,"runs":[3915,3952,3579,3396,3651,3496,3549,3282,3488,4522,3502,3523,3356,3659,3192,3283,3664,3398,4388,3379]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-create","numbers":{"100-10000":{"min":10,"max":48,"avg":13.83,"total":1383,"runs":[19,13,11,11,16,14,48,15,34,12,11,13,16,14,11,13,13,11,11,14,15,13,12,14,13,13,14,13,12,13,19,16,13,12,13,12,11,13,12,13,13,14,13,13,13,15,13,12,42,18,13,15,14,12,15,13,16,14,12,12,13,11,17,12,13,12,12,13,12,13,11,13,12,10,12,12,12,13,11,12,13,12,13,14,12,12,15,11,13,13,11,11,12,13,12,12,13,11,14,12]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-lookup","numbers":{"100-10000":{"min":8,"max":37,"avg":10.14,"total":1014,"runs":[16,10,9,11,37,22,14,10,11,10,8,9,10,10,9,9,10,9,10,12,8,8,9,10,9,8,10,8,11,10,10,10,8,10,9,9,10,10,9,9,11,11,10,9,9,9,8,10,17,11,11,11,10,10,11,20,13,9,10,8,9,9,11,8,10,9,10,9,9,9,9,9,9,9,9,8,9,9,9,9,9,10,11,10,8,10,10,9,9,8,10,8,10,9,10,9,9,8,8,8]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-update","numbers":{"100-10000":{"min":14,"max":169,"avg":19.34,"total":1934,"runs":[21,18,17,18,21,33,21,16,16,15,19,16,16,16,18,16,16,17,18,22,17,16,18,18,17,19,17,18,21,20,19,16,17,22,16,15,16,19,16,18,21,15,16,18,18,16,16,169,27,18,18,18,17,18,17,24,20,17,15,16,15,22,34,17,15,17,15,18,17,16,21,17,16,17,16,18,17,14,17,18,18,20,16,16,17,15,14,18,17,18,18,16,16,16,16,17,16,19,17,18]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-delete","numbers":{"100-10000":{"min":10,"max":62,"avg":13.61,"total":1361,"runs":[12,13,12,12,24,57,14,13,11,11,12,10,13,12,11,11,13,12,12,13,12,13,12,14,14,12,11,13,13,13,13,11,12,11,12,12,12,13,12,11,12,12,12,13,12,11,12,62,20,14,13,33,12,15,16,14,12,12,12,12,12,18,14,11,14,11,11,12,11,11,14,12,10,12,13,12,11,13,12,13,13,14,12,12,12,12,12,11,11,11,13,11,11,13,12,11,13,12,11,12]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-create","numbers":{"100-10000":{"min":11,"max":66,"avg":13.9,"total":1390,"runs":[15,12,32,30,15,12,12,15,13,14,11,12,13,11,16,11,13,13,12,14,12,12,15,14,12,13,14,12,12,12,12,15,11,12,13,12,11,66,18,15,13,14,15,12,16,13,12,11,12,19,13,11,14,14,12,11,18,14,12,13,13,12,13,11,13,12,14,13,12,12,13,11,13,12,11,13,13,12,12,13,12,13,15,12,11,11,11,12,13,11,13,11,11,12,11,15,17,18,18,17]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-lookup","numbers":{"100-10000":{"min":7,"max":101,"avg":10.79,"total":1079,"runs":[101,10,12,19,9,30,8,9,9,9,9,8,8,9,10,7,8,10,9,8,9,10,9,9,9,10,8,8,7,10,8,10,9,11,8,9,9,38,10,9,26,8,11,21,11,9,8,9,8,18,9,9,8,8,9,9,9,8,9,8,10,9,8,15,7,9,8,9,9,8,8,9,8,8,8,7,9,8,8,7,9,9,9,9,8,8,8,8,7,9,8,9,9,8,8,8,14,12,11,9]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-update","numbers":{"100-10000":{"min":18,"max":97,"avg":23.43,"total":2343,"runs":[26,25,35,97,29,27,22,23,26,23,23,22,24,24,27,23,24,27,25,23,24,26,26,26,23,24,22,22,23,22,24,22,23,23,25,22,21,42,25,26,30,22,24,26,25,21,21,22,26,32,21,20,22,20,23,20,22,21,22,20,20,20,22,20,20,20,21,19,20,19,20,20,21,19,20,20,20,18,19,19,19,20,20,18,20,21,21,28,19,19,20,19,19,22,18,24,24,25,24,20]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-delete","numbers":{"100-10000":{"min":13,"max":168,"avg":19.47,"total":1947,"runs":[19,20,25,31,19,18,18,19,20,19,19,19,19,22,20,18,19,21,19,21,19,20,24,19,19,17,18,19,18,19,19,23,20,20,23,19,168,28,19,19,19,18,22,22,18,19,18,16,22,16,19,16,16,16,17,17,18,16,17,15,17,16,16,16,16,19,17,16,15,16,14,17,13,16,15,16,15,19,14,14,15,16,15,16,16,15,17,15,15,15,16,15,14,15,17,18,18,19,17,14]}},"meta":{}} We're spending quite a bunch of time in loading the module/namespace combo. {"special":"delimiter run line","ts":"2024-02-15T14:13:36.115Z"}
{"scenario":"x100: basic build physical","operation":"unmaker","numbers":{"100-10000":{"min":1957,"max":2356,"avg":2154.5,"total":43090,"runs":[2148,2127,2275,2288,2356,2249,2167,2133,2180,2262,2257,2068,2023,1982,2129,1957,2316,2038,2058,2077]}},"meta":{}}
{"scenario":"x100: basic build regular","operation":"unmaker","numbers":{"100-10000":{"min":1972,"max":2343,"avg":2157.45,"total":43149,"runs":[2134,2118,2264,2275,2343,2240,2204,2146,2195,2221,2243,2113,2036,1992,2136,1972,2327,2050,2010,2130]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-create","numbers":{"100-10000":{"min":8,"max":44,"avg":11.21,"total":1121,"runs":[16,12,11,13,11,11,10,10,10,44,21,13,11,10,11,11,10,10,10,11,11,10,11,16,11,13,13,13,11,12,13,12,16,11,12,11,11,11,12,10,11,10,10,12,10,11,9,10,10,10,9,11,9,9,11,9,10,9,19,9,10,9,9,9,13,10,11,10,10,10,8,8,11,9,9,9,9,10,9,9,10,12,10,11,12,13,9,9,10,10,11,9,10,10,11,17,10,9,10,12]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-lookup","numbers":{"100-10000":{"min":6,"max":33,"avg":7.52,"total":752,"runs":[9,7,8,8,8,8,8,6,7,33,8,9,7,7,7,8,7,7,8,7,7,7,7,7,8,8,8,7,8,8,7,7,6,8,7,7,8,8,7,7,9,7,7,7,7,8,6,6,6,8,7,7,7,7,6,6,7,7,10,7,6,9,7,7,8,7,6,8,7,8,7,7,6,7,8,8,7,7,8,9,7,7,7,7,7,7,6,7,6,7,6,6,7,7,7,8,7,8,8,7]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-update","numbers":{"100-10000":{"min":11,"max":43,"avg":14.52,"total":1452,"runs":[14,15,16,16,15,17,16,16,12,43,15,31,16,14,13,12,15,13,14,13,15,17,13,15,13,17,15,15,23,13,18,15,14,14,14,14,15,15,15,14,16,13,14,13,15,13,13,15,15,13,18,14,14,13,13,13,14,13,14,13,12,13,14,13,13,17,15,11,13,13,13,12,13,13,13,12,12,15,12,14,13,13,12,13,12,15,13,13,14,13,13,12,13,14,15,16,15,12,14,15]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-delete","numbers":{"100-10000":{"min":5,"max":11,"avg":7.35,"total":735,"runs":[8,8,9,7,8,8,7,8,11,10,7,8,8,9,7,9,8,8,6,8,7,7,7,6,8,10,6,9,11,7,7,8,7,8,8,9,8,9,8,6,8,10,8,8,7,8,7,6,7,7,6,6,6,6,7,6,8,5,7,7,5,8,8,7,7,6,7,7,6,6,6,7,6,6,7,8,7,7,6,7,6,6,6,6,7,9,7,7,8,8,7,8,6,8,9,8,7,7,6,7]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-create","numbers":{"100-10000":{"min":9,"max":20,"avg":10.77,"total":1077,"runs":[14,11,11,12,11,10,12,20,10,12,11,10,11,10,10,12,15,13,10,16,11,13,11,13,12,10,10,11,10,12,11,11,13,11,10,11,9,10,11,9,9,11,9,10,9,10,15,10,10,11,12,10,10,11,10,9,11,10,10,11,11,10,11,9,11,10,9,11,11,11,10,11,11,10,12,10,10,10,12,9,9,9,9,11,9,10,10,10,11,10,11,11,9,12,10,10,10,10,9,10]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-lookup","numbers":{"100-10000":{"min":8,"max":31,"avg":10.3,"total":1030,"runs":[31,13,10,10,11,12,13,15,13,10,11,9,10,11,9,10,11,9,10,13,10,19,11,10,10,11,9,11,14,10,10,11,10,10,11,9,10,9,9,8,8,8,9,11,10,9,10,9,10,11,9,8,11,9,9,11,9,10,10,9,9,10,9,11,10,10,10,9,11,9,11,11,11,9,10,9,9,11,9,11,8,9,9,9,9,9,13,11,8,9,11,10,9,10,8,9,9,9,9,10]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-update","numbers":{"100-10000":{"min":16,"max":79,"avg":19.64,"total":1964,"runs":[19,25,19,20,20,20,79,20,32,21,18,20,21,18,19,19,20,20,24,21,21,24,22,19,20,19,19,20,20,17,20,20,21,21,17,18,19,17,19,17,21,16,18,22,17,19,17,18,19,18,17,19,17,17,18,17,18,19,18,17,18,19,18,18,21,19,19,20,19,17,18,21,20,19,18,22,19,20,18,20,18,18,19,16,17,18,21,17,17,18,20,17,18,19,18,17,16,16,17,17]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-delete","numbers":{"100-10000":{"min":9,"max":32,"avg":11.77,"total":1177,"runs":[15,13,13,12,11,11,32,14,13,11,12,14,12,13,14,12,11,13,13,13,14,11,12,15,11,11,15,12,13,12,11,12,13,13,12,11,10,11,11,11,11,11,10,16,12,11,11,10,10,10,11,10,9,11,11,11,13,11,11,12,10,10,12,10,12,11,11,10,12,10,11,17,12,9,12,11,14,10,11,10,11,10,10,11,9,11,12,10,9,13,12,12,12,11,10,11,10,11,10,12]}},"meta":{}} |
Caching namespaces/modules (other top level resources) seems to bring the biggest performance increase so far |
Next up might be worth checking contextual role bits? |
I just removed RBAC and we get to this {"special":"delimiter run line","ts":"2024-02-15T14:58:18.933Z"}
{"scenario":"x100: basic build regular","operation":"unmaker","numbers":{"100-10000":{"min":1856,"max":3040,"avg":2084.75,"total":41695,"runs":[3040,2090,2421,1976,1862,1863,2249,1856,1942,1969,1995,1997,2120,2163,1897,1947,2120,1904,2075,2209]}},"meta":{}}
{"scenario":"x100: basic build physical","operation":"unmaker","numbers":{"100-10000":{"min":1859,"max":3046,"avg":2087.75,"total":41755,"runs":[3046,2104,2435,1982,1871,1874,2262,1859,1951,1980,2015,1956,2108,2152,1888,1937,2108,1898,2068,2261]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-create","numbers":{"100-10000":{"min":8,"max":31,"avg":9.84,"total":984,"runs":[12,10,11,9,10,9,8,10,9,11,11,11,10,9,10,9,9,9,10,13,9,13,9,9,9,9,11,21,13,10,11,8,10,10,9,9,9,9,9,9,10,9,8,10,10,9,9,8,9,8,9,9,12,9,8,12,9,12,14,9,9,9,9,9,9,9,9,9,9,10,31,8,8,8,8,9,8,8,8,8,8,8,9,8,8,10,11,11,12,13,12,9,9,9,8,10,10,9,8,8]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-lookup","numbers":{"100-10000":{"min":4,"max":15,"avg":6.23,"total":623,"runs":[8,7,6,6,6,6,10,6,7,6,8,7,6,6,6,6,7,7,6,6,6,7,6,6,7,7,7,10,7,7,6,6,6,5,6,6,6,6,6,6,5,5,5,6,6,7,6,7,6,5,6,8,15,7,5,5,6,7,7,6,5,6,5,6,5,7,6,6,5,6,7,6,6,5,6,5,6,5,5,5,5,5,5,7,5,6,7,8,8,6,7,5,5,6,5,6,6,7,4,5]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-update","numbers":{"100-10000":{"min":10,"max":119,"avg":13.74,"total":1374,"runs":[13,12,12,12,13,13,13,15,12,14,13,13,12,14,11,13,11,11,119,12,12,12,14,11,14,13,12,13,14,12,12,14,12,14,13,16,12,12,12,15,12,14,12,14,11,12,11,13,12,13,11,14,21,13,13,15,13,24,15,12,12,12,11,11,12,11,13,12,13,22,20,10,11,10,10,11,10,11,10,13,11,11,11,10,12,13,14,20,14,11,12,11,11,10,10,13,11,11,10,11]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-delete","numbers":{"100-10000":{"min":5,"max":21,"avg":6.8,"total":680,"runs":[8,7,8,8,6,6,7,7,8,7,8,7,7,7,7,7,7,5,7,7,8,6,6,7,6,6,7,6,8,7,7,9,6,6,8,7,7,7,6,7,6,7,7,8,7,6,6,7,6,7,6,7,7,6,6,7,7,9,9,7,7,6,7,6,7,7,6,5,7,21,6,5,5,6,5,6,6,6,5,7,6,6,6,6,6,14,7,11,6,6,6,5,6,6,5,6,5,5,5,5]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-create","numbers":{"100-10000":{"min":7,"max":31,"avg":9.52,"total":952,"runs":[14,9,10,9,10,9,10,11,8,9,10,10,9,10,12,11,9,9,11,10,21,12,9,9,10,12,11,10,9,10,9,11,9,11,9,8,9,8,8,9,9,9,9,14,11,8,9,9,9,10,9,9,8,31,8,8,7,9,9,8,8,8,7,8,8,9,11,14,10,11,8,8,9,8,8,9,8,9,9,8,8,8,8,8,7,8,8,8,7,7,8,8,7,8,8,8,8,18,8,9]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-lookup","numbers":{"100-10000":{"min":6,"max":34,"avg":8.72,"total":872,"runs":[27,34,9,8,8,8,10,9,9,8,7,8,8,8,9,10,7,8,8,10,11,9,9,8,8,8,9,9,9,8,8,8,9,8,8,7,8,9,8,10,10,8,8,10,11,8,8,8,8,7,8,8,8,24,8,7,9,7,7,8,7,7,9,7,7,9,10,12,9,7,7,7,8,8,7,7,7,8,7,7,8,7,9,8,6,7,8,6,7,8,7,8,7,6,7,6,7,15,7,7]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-update","numbers":{"100-10000":{"min":12,"max":112,"avg":16.98,"total":1698,"runs":[19,17,16,18,18,18,17,18,16,18,17,17,17,112,16,19,18,17,17,19,17,18,17,19,16,16,20,17,18,18,16,17,19,17,16,16,15,16,16,28,15,18,17,32,19,15,17,17,15,15,16,15,17,23,14,14,14,15,13,13,16,14,13,16,14,21,18,22,15,16,15,14,14,16,15,12,16,14,12,12,13,13,13,13,12,12,13,12,13,13,12,13,15,12,13,13,12,19,13,14]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-delete","numbers":{"100-10000":{"min":7,"max":19,"avg":9.93,"total":993,"runs":[11,11,11,13,12,11,12,11,10,11,10,11,11,12,11,11,10,11,12,11,13,11,10,12,10,12,10,11,11,11,11,10,11,10,10,10,10,10,12,13,10,15,10,15,11,10,9,11,10,10,10,12,19,9,9,9,8,9,10,9,9,8,10,8,10,11,16,10,11,11,9,8,9,10,10,9,11,7,7,7,7,7,7,7,7,8,7,7,8,7,7,7,7,8,7,9,7,7,7,8]}},"meta":{}} |
If we campare this to the original numbers: This would then reduce the memory footprint by ~30GB for this scenario. From ~39GB to ~9GB which is ~9.3 times better So the performance gain is not as great, but efficiency would be much much better (~77% less memory consumption (9/39*100)). |
TL;DRThe most impactful bits are: Caching RBAC resource keysWe're working a bunch with strings when working with any resource. We can utilize a trie-like structure with usage counters to figure out the most used indexes, we can implement a cache with optimal lookup time and constraint it's memory consumption to not grow out of control. Caching top-level resourcesThings like namespaces and modules are commonly read as they are involved in other operations (like looking up and creating records). Should we implement some simplified thing (potentially similar to what's noted for RBAC keys) as a workaround until we do something more proper? |
Caching top-level resourcesImproving this, memory consumption goes down for about ~4GB. |
Caching top-level resources would be quite a bit of an improvement but... |
Caching RBAC resourcesBefore:
After:
Comparing the numbers:
|
Coming back to reality; cleaning up a stable working version; we get to this: {"special":"delimiter run line","ts":"2024-03-04T11:46:17.124Z"}
{"scenario":"x100: basic build regular","operation":"unmaker","numbers":{"100-10000":{"min":3051,"max":6254,"avg":3530.25,"total":70605,"runs":[3207,3277,3192,3051,3178,3156,3745,3376,3276,3285,3103,3099,3182,4701,3561,3504,6254,3685,3348,3425]}},"meta":{}}
{"scenario":"x100: basic build physical","operation":"unmaker","numbers":{"100-10000":{"min":3073,"max":6290,"avg":3552.15,"total":71043,"runs":[3224,3295,3204,3073,3192,3184,3754,3391,3291,3301,3123,3114,3206,4737,3598,3548,6290,3710,3367,3441]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-create","numbers":{"100-10000":{"min":13,"max":25,"avg":16.7,"total":167,"runs":[25,23,14,13,15,14,18,14,14,17]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-lookup","numbers":{"100-10000":{"min":9,"max":23,"avg":11.4,"total":114,"runs":[23,10,10,11,12,10,10,9,10,9]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-update","numbers":{"100-10000":{"min":17,"max":21,"avg":18.5,"total":185,"runs":[18,19,17,19,19,21,18,18,18,18]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-delete","numbers":{"100-10000":{"min":10,"max":18,"avg":13.2,"total":132,"runs":[16,11,13,11,11,18,16,10,14,12]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-create","numbers":{"100-10000":{"min":12,"max":21,"avg":15.3,"total":153,"runs":[21,14,16,17,14,12,17,17,12,13]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-lookup","numbers":{"100-10000":{"min":12,"max":95,"avg":21.5,"total":215,"runs":[95,13,12,16,16,12,12,12,14,13]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-update","numbers":{"100-10000":{"min":20,"max":29,"avg":23.9,"total":239,"runs":[25,24,25,29,20,21,23,25,24,23]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-delete","numbers":{"100-10000":{"min":15,"max":46,"avg":20.3,"total":203,"runs":[46,15,18,21,17,19,17,16,17,17]}},"meta":{}} So... XSS is quite a thing but there isn't much we can do about it. |
Running sanitizers and validators a in parallel, we get this: {"special":"delimiter run line","ts":"2024-03-04T13:24:16.075Z"}
{"scenario":"x100: basic build regular","operation":"unmaker","numbers":{"100-10000":{"min":3016,"max":5938,"avg":3312.5,"total":66250,"runs":[3348,3136,3153,3255,3061,3060,3121,3035,3046,3176,3076,3016,3060,3519,3088,3043,3038,3026,5938,4055]}},"meta":{}}
{"scenario":"x100: basic build physical","operation":"unmaker","numbers":{"100-10000":{"min":3027,"max":6836,"avg":3337.3,"total":66746,"runs":[3365,3151,3167,3269,3080,3084,3154,3055,3097,3181,3067,3027,3073,3509,3093,3041,3051,3054,6836,3392]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-create","numbers":{"100-10000":{"min":11,"max":33,"avg":13.24,"total":1324,"runs":[21,13,14,13,14,12,13,12,12,14,12,13,13,14,12,15,13,11,13,11,17,12,14,33,11,12,14,18,14,12,13,13,14,11,13,12,14,13,12,12,14,13,14,11,12,13,12,11,13,12,12,13,14,12,11,28,16,30,12,11,14,13,11,12,12,13,11,12,12,11,12,14,12,12,12,11,13,13,12,12,13,11,14,12,11,11,12,12,13,12,12,12,12,12,12,11,12,16,15,12]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-lookup","numbers":{"100-10000":{"min":7,"max":98,"avg":10.26,"total":1026,"runs":[15,11,10,9,9,10,10,9,12,12,10,10,9,12,8,11,9,9,8,10,9,9,10,10,9,9,9,10,9,8,9,10,9,8,9,10,8,9,10,8,9,10,10,8,8,8,9,7,8,9,10,8,9,10,98,21,10,9,9,8,8,8,8,9,8,9,8,8,8,10,9,9,9,9,9,9,9,8,8,9,8,8,8,9,9,8,10,16,9,10,9,9,10,10,9,10,11,10,9,9]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-update","numbers":{"100-10000":{"min":12,"max":123,"avg":17.89,"total":1789,"runs":[18,23,15,18,19,14,16,15,19,16,17,15,18,16,16,19,15,15,17,15,19,15,17,19,18,17,30,15,15,17,16,20,16,17,17,17,15,17,16,18,14,18,17,16,14,15,15,17,15,15,15,16,16,15,123,29,17,16,16,15,15,14,17,16,15,14,15,15,17,15,18,12,16,18,16,16,16,15,19,17,14,17,15,17,14,16,29,26,16,16,21,15,16,16,18,15,23,17,15,16]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-delete","numbers":{"100-10000":{"min":9,"max":35,"avg":11.49,"total":1149,"runs":[12,11,11,11,10,12,11,11,14,11,10,11,13,9,9,10,11,9,9,11,10,11,11,11,12,10,28,11,12,12,12,9,11,10,13,10,12,9,10,9,12,11,12,11,11,11,11,11,10,10,11,10,9,11,35,15,10,11,12,10,9,11,10,11,10,10,11,13,10,18,12,10,11,10,15,10,12,11,11,9,11,16,11,10,11,9,18,11,11,10,9,12,10,12,9,12,17,11,10,12]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-create","numbers":{"100-10000":{"min":10,"max":159,"avg":14.45,"total":1445,"runs":[16,12,16,14,14,13,15,13,12,15,10,14,11,11,10,16,13,15,16,13,15,12,12,12,14,13,12,15,12,12,12,14,14,13,11,11,11,12,13,13,13,13,11,159,23,15,12,12,12,13,12,12,12,12,11,12,14,11,13,13,13,15,13,11,11,18,12,13,13,24,12,11,14,11,12,12,13,20,13,12,12,12,12,11,11,12,23,13,12,11,11,12,11,13,12,11,11,12,11,12]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-lookup","numbers":{"100-10000":{"min":8,"max":96,"avg":13.21,"total":1321,"runs":[96,12,11,12,12,10,13,12,12,14,12,14,12,10,11,12,11,11,11,10,12,14,12,12,12,11,11,15,13,12,12,11,11,13,13,12,11,11,10,11,11,11,11,74,17,23,11,12,11,11,12,12,11,10,11,12,13,10,11,11,11,12,10,13,12,11,11,10,10,12,12,11,14,13,11,11,11,14,13,11,13,11,8,12,11,11,13,11,12,12,12,11,11,11,11,12,11,11,11,11]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-update","numbers":{"100-10000":{"min":17,"max":46,"avg":21.63,"total":2163,"runs":[27,22,20,21,20,23,22,21,20,24,20,21,19,19,19,21,20,33,20,23,39,19,19,23,23,21,21,20,19,22,20,21,23,23,18,20,20,19,20,20,20,19,20,46,23,21,20,20,20,20,19,19,19,20,21,27,22,21,21,24,20,21,25,18,19,21,21,20,21,32,20,21,18,21,21,21,21,26,22,20,17,23,19,24,21,23,22,20,20,21,21,22,23,23,23,23,21,20,21,20]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-delete","numbers":{"100-10000":{"min":13,"max":32,"avg":15.45,"total":1545,"runs":[15,16,14,16,15,18,15,15,19,15,15,15,14,16,16,14,17,20,16,13,28,17,16,15,14,14,14,17,16,16,14,14,17,15,17,15,14,13,14,14,15,15,14,32,18,16,15,13,13,15,13,15,14,17,15,15,14,15,15,15,16,13,15,15,17,15,13,13,22,18,13,14,17,17,16,13,15,17,15,16,13,14,14,15,16,17,16,14,13,15,15,13,14,16,14,15,15,15,14,15]}},"meta":{}} |
Looking at the CRUD benchmarks, we get this if I remove RBAC, I get this: {"scenario":"x100: basic CRUD regular","operation":"crud-create","numbers":{"100-10000":{"min":10,"max":53,"avg":12.34,"total":1234,"runs":[53,15,13,12,14,14,14,13,11,12,15,14,12,13,11,14,11,11,13,11,13,12,11,12,11,12,12,11,13,14,13,11,15,14,13,13,12,12,11,12,11,12,12,12,12,11,11,12,11,14,12,12,11,12,11,12,11,13,12,12,10,10,11,12,12,12,12,11,13,12,12,11,13,11,11,10,10,15,11,14,12,13,13,10,11,10,10,11,11,11,10,10,10,12,11,12,12,11,12,10]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-lookup","numbers":{"100-10000":{"min":7,"max":22,"avg":8.61,"total":861,"runs":[16,11,8,8,10,15,9,8,8,11,9,8,9,8,9,9,9,8,8,8,7,8,22,10,8,10,10,9,8,7,8,9,8,8,8,8,8,8,9,8,9,8,8,8,8,8,8,8,8,9,9,8,8,9,7,8,9,8,9,8,8,8,9,9,9,8,8,9,8,8,7,8,8,8,8,7,9,19,7,8,7,7,7,7,7,7,8,8,7,8,9,9,9,7,7,8,8,8,7,8]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-update","numbers":{"100-10000":{"min":12,"max":41,"avg":15.73,"total":1573,"runs":[19,16,15,18,17,22,19,17,15,18,19,16,15,15,20,18,16,15,16,17,18,14,23,15,14,16,16,15,14,14,14,14,14,14,14,15,14,15,17,15,22,15,17,17,14,14,16,15,15,16,17,16,15,15,17,24,25,17,14,15,15,16,14,14,14,13,13,13,14,14,13,14,14,15,18,15,16,13,13,13,15,13,12,14,15,41,14,14,16,15,14,14,15,13,14,14,13,13,13,13]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-delete","numbers":{"100-10000":{"min":9,"max":18,"avg":10.68,"total":1068,"runs":[13,13,11,12,12,11,11,9,9,12,12,10,11,11,13,13,10,11,10,10,12,12,11,11,10,12,10,10,10,11,11,10,10,10,11,12,11,13,10,10,11,11,9,10,10,11,11,10,11,11,10,10,10,11,9,18,17,10,10,12,9,10,10,10,10,10,10,10,11,11,10,10,11,11,10,9,10,10,10,9,9,11,11,9,10,17,10,10,9,10,12,9,10,10,10,9,9,9,10,10]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-create","numbers":{"100-10000":{"min":10,"max":43,"avg":12.18,"total":1218,"runs":[43,13,12,16,12,12,14,12,12,13,13,14,12,11,11,12,11,13,12,12,13,11,10,13,11,11,12,11,13,12,20,11,11,12,11,13,13,12,10,12,13,11,11,12,12,12,12,11,13,12,11,12,11,11,12,11,12,11,22,11,11,10,10,11,11,12,11,13,14,12,11,10,12,12,11,12,11,11,10,11,11,12,11,11,11,11,12,11,11,11,10,11,11,11,13,10,10,11,18,10]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-lookup","numbers":{"100-10000":{"min":9,"max":52,"avg":11.77,"total":1177,"runs":[52,12,11,14,13,11,11,13,11,11,12,12,12,12,13,14,11,12,11,12,11,12,11,11,12,12,12,10,12,11,11,11,11,11,11,11,11,12,11,12,11,13,24,11,11,11,10,11,11,11,12,11,11,11,12,12,11,10,10,11,11,11,11,10,29,11,11,10,11,10,11,10,10,10,11,10,10,11,10,10,11,10,9,11,10,10,11,10,10,11,10,11,10,11,10,10,10,11,11,11]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-update","numbers":{"100-10000":{"min":18,"max":40,"avg":21.42,"total":2142,"runs":[29,20,25,29,23,21,24,24,22,22,24,25,21,22,21,22,40,22,20,24,22,21,21,23,20,22,23,20,22,23,21,20,22,20,22,20,24,23,22,21,23,33,26,21,20,19,20,21,19,19,19,20,20,19,20,20,20,21,20,20,20,22,19,21,29,21,19,19,21,22,20,21,18,20,20,19,22,21,19,20,20,20,20,19,21,20,19,21,20,20,20,20,20,19,21,21,18,19,20,19]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-delete","numbers":{"100-10000":{"min":13,"max":37,"avg":16.22,"total":1622,"runs":[15,18,20,23,18,17,21,18,17,16,21,18,18,17,17,15,18,16,20,16,18,17,17,18,18,17,16,17,17,16,17,16,16,16,17,17,17,16,16,17,16,14,16,16,17,18,15,15,16,15,15,16,15,16,16,18,14,20,16,16,16,15,16,14,17,15,17,17,15,16,14,14,14,15,17,14,15,15,14,14,13,14,15,13,15,13,13,15,14,15,14,14,16,13,15,13,13,37,13,15]}},"meta":{}} Not that big of a bump so won't look at it much further. |
Throwing some ideas to see if we can find the hardest blockers... |
Removing DAL for CRUD: {"scenario":"x100: basic CRUD physical","operation":"crud-create","numbers":{"100-10000":{"min":10,"max":40,"avg":12.29,"total":1229,"runs":[40,13,12,13,13,13,12,12,14,11,12,11,12,12,13,12,13,12,30,13,19,13,12,14,12,13,12,11,11,13,11,13,13,12,12,11,12,10,11,11,10,11,13,11,11,12,13,11,21,11,13,11,11,11,12,11,12,13,12,11,11,12,11,11,11,11,10,11,11,12,10,11,11,12,11,11,11,12,13,12,10,11,15,11,11,10,12,11,10,10,11,11,11,11,11,11,11,11,12,13]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-lookup","numbers":{"100-10000":{"min":6,"max":17,"avg":8.05,"total":805,"runs":[12,9,7,8,8,7,8,7,8,8,8,9,10,7,8,8,8,9,17,9,8,9,8,8,7,8,8,8,9,8,8,9,9,9,9,9,9,8,8,8,9,10,10,8,9,9,8,9,7,8,7,7,7,7,7,8,7,7,9,8,8,8,10,9,8,8,8,8,6,7,7,8,8,7,7,7,8,9,10,6,8,7,8,7,8,9,6,7,9,8,8,7,6,7,7,6,7,6,7,7]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-update","numbers":{"100-10000":{"min":11,"max":77,"avg":15.16,"total":1516,"runs":[17,14,13,12,13,14,13,13,11,15,12,13,25,29,13,14,13,77,36,27,15,15,15,14,16,16,15,16,14,14,14,15,13,13,13,13,14,13,15,13,15,14,14,13,14,15,14,13,16,14,14,13,14,14,13,14,12,25,13,16,13,15,11,12,12,13,12,13,12,14,13,14,13,13,15,13,14,14,14,13,29,35,14,14,15,13,13,13,13,12,12,11,11,11,11,11,11,12,11,11]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-delete","numbers":{"100-10000":{"min":7,"max":35,"avg":9.28,"total":928,"runs":[10,8,8,10,8,9,9,8,12,8,10,9,10,15,10,8,9,35,25,24,9,8,9,8,7,9,9,8,9,9,9,8,8,9,8,10,9,9,9,10,8,9,8,10,9,9,9,17,8,9,8,8,11,9,8,8,8,13,9,8,8,8,9,9,8,9,8,9,8,9,9,10,8,8,8,8,7,8,7,9,8,12,7,7,8,8,8,9,8,7,7,8,7,8,7,7,8,7,8,7]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-create","numbers":{"100-10000":{"min":10,"max":43,"avg":12.4,"total":1240,"runs":[43,13,11,12,14,12,13,13,14,12,12,12,12,11,13,13,13,11,30,12,19,13,13,13,12,12,11,12,12,13,12,13,13,12,12,12,12,11,11,11,11,12,13,11,12,13,13,11,21,12,12,11,10,11,12,11,12,13,12,11,12,11,12,12,11,10,12,12,11,10,11,12,12,12,11,11,11,11,12,11,10,11,14,10,11,11,12,11,12,11,11,10,11,11,11,11,11,11,11,13]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-lookup","numbers":{"100-10000":{"min":6,"max":20,"avg":7.95,"total":795,"runs":[13,9,7,8,6,8,8,7,7,8,8,7,9,8,8,7,7,10,20,8,8,9,7,9,7,8,8,8,9,8,9,9,9,8,10,9,8,9,9,9,9,9,9,9,8,7,9,9,8,7,6,7,7,7,8,7,7,7,8,10,8,8,8,8,8,8,7,9,7,8,7,7,8,7,7,7,7,9,10,8,7,7,8,8,7,7,7,7,7,6,8,6,6,7,6,7,6,7,7,7]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-update","numbers":{"100-10000":{"min":11,"max":78,"avg":15.45,"total":1545,"runs":[18,16,13,14,14,13,13,12,13,15,13,13,25,28,14,14,14,78,35,28,16,14,17,14,15,17,15,15,13,13,14,15,13,15,14,12,13,13,14,13,15,15,14,12,15,15,14,13,16,15,15,13,13,15,14,13,13,25,14,14,13,16,13,12,13,13,13,13,12,14,14,15,15,14,15,14,13,14,14,13,30,36,14,14,15,14,12,13,14,14,12,12,11,12,11,11,13,11,11,11]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-delete","numbers":{"100-10000":{"min":6,"max":32,"avg":9.08,"total":908,"runs":[9,8,7,9,8,8,7,9,10,9,8,9,9,15,9,9,9,32,24,24,9,9,8,8,8,10,9,8,9,9,9,8,9,8,8,10,9,8,9,8,9,8,9,9,9,10,8,17,8,10,7,8,12,8,8,9,7,15,8,8,8,8,8,8,8,8,7,7,9,8,7,8,7,7,8,8,9,9,8,8,8,12,7,7,8,8,8,8,8,7,8,8,7,7,7,7,6,8,8,11]}},"meta":{}} Not that big of a boost so won't pursue further atm |
I yanked out DAL for record searching (so iterator stuff) and we go from this {"scenario":"x100: list plain regular","operation":"search","numbers":{"100-10000":{"min":19,"max":41,"avg":22.69,"total":2269,"runs":[36,22,21,22,22,23,21,21,20,20,21,22,21,21,23,20,21,22,23,24,24,23,21,25,23,24,24,22,22,23,20,23,24,21,22,24,21,23,24,27,24,25,22,23,21,23,21,21,25,20,24,24,24,41,24,22,24,23,22,21,23,28,23,24,22,20,22,22,22,21,23,22,23,23,22,22,24,21,23,22,23,25,21,21,21,22,24,22,22,20,23,23,20,22,23,21,23,20,22,19]}},"meta":{}}
{"scenario":"x100: list plain physical","operation":"search","numbers":{"100-10000":{"min":53,"max":86,"avg":60.16,"total":6016,"runs":[86,61,60,60,64,62,65,64,62,67,62,64,60,61,69,64,65,61,68,74,66,64,64,66,61,64,63,61,67,65,65,62,64,62,61,59,55,61,59,55,57,54,55,57,55,57,63,57,58,55,56,68,79,57,59,62,57,56,55,56,54,57,58,59,76,66,60,56,57,54,56,55,57,57,56,60,57,61,79,61,56,57,58,55,56,56,55,56,54,53,53,55,57,56,55,56,54,55,53,54]}},"meta":{}} to this: {"scenario":"x100: list plain regular","operation":"search","numbers":{"100-10000":{"min":11,"max":25,"avg":13.18,"total":1318,"runs":[25,17,13,13,15,13,13,13,12,14,13,13,12,11,12,12,13,11,12,12,12,15,13,14,14,13,14,12,13,14,13,13,14,12,13,12,11,14,12,14,13,12,13,12,13,13,12,13,12,12,14,11,14,12,13,12,12,12,13,13,13,11,12,12,11,13,13,14,14,14,14,14,13,12,13,12,12,23,21,13,12,14,12,12,12,11,13,12,12,17,20,13,13,12,12,12,13,14,13,13]}},"meta":{}}
{"scenario":"x100: list plain physical","operation":"search","numbers":{"100-10000":{"min":27,"max":74,"avg":30.78,"total":3078,"runs":[74,40,31,32,30,31,30,31,33,33,32,34,32,33,33,32,34,34,32,31,32,32,31,32,34,32,33,33,32,33,40,31,33,32,34,42,30,32,32,32,30,30,30,31,29,29,29,28,29,28,30,29,29,28,28,28,29,27,29,27,28,29,29,29,29,28,28,29,29,28,29,29,28,28,28,29,28,28,28,28,27,27,29,29,31,28,28,28,29,29,28,29,28,29,28,35,32,28,29,27]}},"meta":{}} Making it quite a bit faster; continuing... |
If I remove the thing to generate page navigation we get to... {"scenario":"x100: list plain regular","operation":"search","numbers":{"100-10000":{"min":10,"max":39,"avg":12.76,"total":1276,"runs":[39,13,12,13,15,13,14,12,13,13,13,13,11,12,18,14,12,12,12,12,10,12,13,11,15,14,12,13,13,13,12,11,11,12,12,11,11,11,12,11,13,11,15,23,13,14,13,12,11,12,10,15,12,13,12,12,11,11,11,11,12,11,12,12,11,16,16,12,13,27,11,11,12,11,12,13,12,11,11,12,10,11,12,12,10,12,10,12,11,11,13,13,11,11,10,20,12,11,13,12]}},"meta":{}}
{"scenario":"x100: list plain physical","operation":"search","numbers":{"100-10000":{"min":26,"max":106,"avg":30.36,"total":3036,"runs":[106,40,30,30,33,33,33,31,38,31,32,30,30,31,30,35,30,31,31,34,30,30,29,30,32,30,44,30,29,31,31,30,31,30,30,30,40,33,30,26,28,29,27,32,30,28,29,28,27,27,27,27,27,28,27,27,26,27,26,26,26,26,28,28,27,27,27,27,28,28,28,30,30,30,28,27,27,27,28,27,27,27,50,30,29,29,29,29,29,28,28,28,27,27,27,26,28,26,28,32]}},"meta":{}} So about same difference |
looking into reusing some bits; before {"scenario":"x100: list plain regular","operation":"search","numbers":{"100-10000":{"min":19,"max":38,"avg":22.84,"total":2284,"runs":[38,24,25,21,29,22,22,22,21,19,29,32,23,20,22,21,19,19,19,22,23,20,20,22,21,38,22,25,21,23,21,22,21,22,21,22,23,23,21,23,21,21,22,21,20,23,28,28,30,28,25,36,26,25,23,21,20,21,22,20,20,21,23,24,23,22,20,22,23,24,25,23,20,22,20,20,21,20,19,22,20,20,21,22,22,25,23,26,25,22,22,21,20,21,22,24,23,23,22,22]}},"meta":{}}
{"scenario":"x100: list plain physical","operation":"search","numbers":{"100-10000":{"min":51,"max":134,"avg":61.17,"total":6117,"runs":[121,70,63,72,62,64,59,67,76,65,61,64,67,62,66,75,69,74,61,63,62,67,63,65,64,61,60,63,63,64,70,62,65,65,59,61,62,60,63,73,56,53,55,55,53,55,57,54,54,55,55,56,54,56,56,53,56,57,56,61,57,56,56,56,57,53,55,57,59,59,62,57,58,56,53,54,54,52,53,70,53,53,51,52,52,134,104,60,60,55,55,57,55,55,55,56,55,54,54,53]}},"meta":{}} after {"scenario":"x100: list plain regular","operation":"search","numbers":{"100-10000":{"min":18,"max":46,"avg":22.84,"total":2284,"runs":[38,22,22,21,22,22,22,21,21,20,26,19,21,23,20,19,24,21,21,21,20,18,22,24,32,30,22,26,20,20,22,19,46,32,24,25,34,31,23,22,21,22,21,21,22,22,24,22,32,24,21,24,25,24,33,21,21,24,21,20,23,21,21,21,21,19,22,21,24,21,22,23,23,21,27,21,23,21,21,19,23,24,19,22,21,20,24,21,20,21,22,20,23,21,21,19,20,22,22,21]}},"meta":{}}
{"scenario":"x100: list plain physical","operation":"search","numbers":{"100-10000":{"min":52,"max":122,"avg":59.21,"total":5921,"runs":[122,67,62,63,61,64,63,74,68,60,81,68,70,65,63,60,71,65,63,65,62,63,64,61,62,64,68,61,64,63,64,62,61,60,60,53,56,59,58,60,59,56,55,57,56,54,57,56,54,56,52,59,59,54,55,54,53,55,55,55,53,56,54,55,57,53,54,53,53,55,54,53,53,52,55,55,55,54,59,57,57,56,54,59,58,53,55,57,57,54,53,56,58,54,58,56,56,57,55,57]}},"meta":{}} Performance is about the same; memory is somewhat smaller (only for some cases!!) |
For now; will leave it at this: Pre: {"special":"delimiter run line","ts":"2024-03-05T09:38:41.978Z"}
{"scenario":"x100: basic build regular","operation":"unmaker","numbers":{"100-10000":{"min":3518,"max":6516,"avg":3833.5,"total":76670,"runs":[3909,3695,3721,3619,3518,3602,3578,3673,3571,3676,3727,3687,3639,3776,3866,3728,3767,3631,3771,6516]}},"meta":{}}
{"scenario":"x100: basic build physical","operation":"unmaker","numbers":{"100-10000":{"min":3534,"max":6569,"avg":3851.55,"total":77031,"runs":[3953,3709,3729,3630,3534,3610,3599,3686,3582,3691,3736,3706,3678,3774,3882,3737,3793,3640,3793,6569]}},"meta":{}}
{"scenario":"x100: list plain regular","operation":"search","numbers":{"100-10000":{"min":34,"max":190,"avg":43.99,"total":4399,"runs":[190,97,78,87,91,71,47,46,47,48,52,45,37,39,40,42,47,39,43,40,39,39,38,42,52,54,36,38,40,37,43,43,41,44,49,43,45,38,41,42,37,38,35,36,39,40,39,36,37,38,46,35,37,39,46,37,38,37,34,38,39,40,36,45,46,37,42,36,51,35,37,35,34,39,40,38,37,36,35,36,39,48,36,36,38,40,39,38,35,40,37,36,36,61,47,40,38,38,37,34]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-create","numbers":{"100-10000":{"min":12,"max":97,"avg":19.26,"total":1926,"runs":[97,54,53,34,30,18,26,23,22,18,24,42,18,18,18,23,24,23,18,21,19,17,21,17,17,19,18,19,19,19,21,20,24,18,17,22,15,20,18,19,23,18,15,19,18,19,18,30,18,16,14,19,18,19,17,16,12,15,15,13,12,14,14,13,15,14,12,14,24,14,13,12,17,13,14,15,13,15,15,13,16,18,14,16,17,13,14,17,16,16,14,20,12,14,14,19,13,15,13,14]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-lookup","numbers":{"100-10000":{"min":8,"max":93,"avg":13.65,"total":1365,"runs":[93,32,18,16,19,12,15,18,24,14,13,14,12,13,17,15,20,17,12,14,12,13,12,12,21,12,11,11,13,16,12,18,12,12,12,11,14,15,14,13,18,11,12,15,12,16,10,13,14,10,14,11,15,12,11,10,10,9,10,20,10,10,38,8,10,9,10,10,10,10,9,12,10,12,8,11,10,10,8,10,9,17,11,11,10,9,9,14,10,13,8,11,11,10,10,10,10,10,9,11]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-update","numbers":{"100-10000":{"min":15,"max":87,"avg":23.89,"total":2389,"runs":[87,83,34,31,40,24,26,23,24,25,24,39,25,24,32,27,34,23,29,27,21,25,26,24,30,21,31,21,23,29,24,34,25,29,20,22,25,24,22,18,35,19,23,25,31,22,21,22,20,22,22,20,21,25,21,15,21,16,17,21,17,18,19,17,17,19,15,19,23,18,18,16,18,16,20,17,19,45,17,19,19,18,18,16,18,17,18,36,16,18,23,20,21,20,19,21,18,15,19,18]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-delete","numbers":{"100-10000":{"min":10,"max":54,"avg":15.93,"total":1593,"runs":[52,54,20,25,17,14,26,20,19,16,15,20,16,13,18,13,15,15,19,18,15,18,13,18,18,18,17,14,14,18,15,17,17,34,13,14,16,17,15,18,19,18,21,13,21,14,53,14,17,15,13,11,14,14,12,13,11,12,12,12,10,13,13,12,14,13,12,12,12,11,13,14,10,12,12,14,12,25,11,10,16,14,11,11,13,11,11,13,11,13,11,14,13,12,11,15,11,12,10,12]}},"meta":{}}
{"scenario":"x100: list plain physical","operation":"search","numbers":{"100-10000":{"min":68,"max":440,"avg":82.12,"total":8212,"runs":[440,141,96,91,98,81,84,87,84,82,90,94,77,80,90,83,94,81,81,84,78,83,82,84,80,87,75,79,80,75,84,77,88,75,80,78,79,79,83,82,79,78,82,75,98,82,78,76,72,75,87,73,75,70,73,79,70,91,68,73,70,73,72,69,74,72,69,72,69,87,72,75,77,70,69,71,73,76,70,74,75,74,78,80,73,70,70,69,71,78,76,73,70,74,71,78,69,70,69,70]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-create","numbers":{"100-10000":{"min":11,"max":187,"avg":19.9,"total":1990,"runs":[187,57,28,32,20,19,24,20,20,23,19,17,22,30,21,24,15,17,22,16,27,15,22,17,20,22,25,19,29,21,16,21,20,20,21,19,18,21,17,17,17,19,20,16,18,17,14,12,14,16,18,15,14,13,13,16,16,24,16,15,14,12,13,16,14,43,11,15,18,13,13,15,13,16,12,14,29,18,17,13,13,16,15,16,14,20,13,20,13,12,15,16,13,13,15,13,14,13,15,19]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-lookup","numbers":{"100-10000":{"min":10,"max":183,"avg":17.31,"total":1731,"runs":[183,21,20,30,14,26,15,15,16,30,17,17,17,22,16,16,16,15,16,16,23,17,16,14,16,16,30,16,24,15,18,17,17,16,15,13,17,14,13,56,15,16,18,13,17,16,13,11,12,10,12,13,39,11,13,10,12,14,13,12,14,11,10,12,14,23,10,13,14,12,12,12,12,32,13,14,16,13,11,13,14,11,12,14,10,14,13,13,11,11,11,13,11,11,10,11,12,11,11,15]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-update","numbers":{"100-10000":{"min":19,"max":105,"avg":27.11,"total":2711,"runs":[105,39,40,29,31,37,39,35,41,32,26,38,30,37,27,31,27,31,29,34,28,28,23,24,33,25,33,28,29,27,28,28,25,31,25,25,26,32,26,38,27,24,25,21,25,24,21,24,23,20,19,22,22,22,21,21,21,24,23,21,23,22,24,21,24,22,25,23,23,22,25,21,22,26,22,22,25,25,22,28,20,22,24,23,24,33,26,25,23,22,25,35,24,24,22,23,23,22,26,28]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-delete","numbers":{"100-10000":{"min":13,"max":62,"avg":20.08,"total":2008,"runs":[62,27,32,19,24,21,23,24,36,22,20,23,18,25,21,26,21,25,19,20,20,30,19,19,21,21,21,22,18,17,23,22,20,33,20,32,20,21,19,18,21,17,13,21,22,19,17,14,14,24,18,17,20,18,15,14,15,14,15,17,16,16,17,15,17,17,13,21,18,18,18,16,15,20,20,22,18,18,19,22,17,18,18,19,16,23,26,19,20,17,22,17,18,17,15,13,16,16,19,17]}},"meta":{}} Post: {"special":"delimiter run line","ts":"2024-03-05T09:38:41.978Z"}
{"scenario":"x100: basic build regular","operation":"unmaker","numbers":{"100-10000":{"min":3518,"max":6516,"avg":3833.5,"total":76670,"runs":[3909,3695,3721,3619,3518,3602,3578,3673,3571,3676,3727,3687,3639,3776,3866,3728,3767,3631,3771,6516]}},"meta":{}}
{"scenario":"x100: basic build physical","operation":"unmaker","numbers":{"100-10000":{"min":3534,"max":6569,"avg":3851.55,"total":77031,"runs":[3953,3709,3729,3630,3534,3610,3599,3686,3582,3691,3736,3706,3678,3774,3882,3737,3793,3640,3793,6569]}},"meta":{}}
{"scenario":"x100: list plain regular","operation":"search","numbers":{"100-10000":{"min":34,"max":190,"avg":43.99,"total":4399,"runs":[190,97,78,87,91,71,47,46,47,48,52,45,37,39,40,42,47,39,43,40,39,39,38,42,52,54,36,38,40,37,43,43,41,44,49,43,45,38,41,42,37,38,35,36,39,40,39,36,37,38,46,35,37,39,46,37,38,37,34,38,39,40,36,45,46,37,42,36,51,35,37,35,34,39,40,38,37,36,35,36,39,48,36,36,38,40,39,38,35,40,37,36,36,61,47,40,38,38,37,34]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-create","numbers":{"100-10000":{"min":12,"max":97,"avg":19.26,"total":1926,"runs":[97,54,53,34,30,18,26,23,22,18,24,42,18,18,18,23,24,23,18,21,19,17,21,17,17,19,18,19,19,19,21,20,24,18,17,22,15,20,18,19,23,18,15,19,18,19,18,30,18,16,14,19,18,19,17,16,12,15,15,13,12,14,14,13,15,14,12,14,24,14,13,12,17,13,14,15,13,15,15,13,16,18,14,16,17,13,14,17,16,16,14,20,12,14,14,19,13,15,13,14]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-lookup","numbers":{"100-10000":{"min":8,"max":93,"avg":13.65,"total":1365,"runs":[93,32,18,16,19,12,15,18,24,14,13,14,12,13,17,15,20,17,12,14,12,13,12,12,21,12,11,11,13,16,12,18,12,12,12,11,14,15,14,13,18,11,12,15,12,16,10,13,14,10,14,11,15,12,11,10,10,9,10,20,10,10,38,8,10,9,10,10,10,10,9,12,10,12,8,11,10,10,8,10,9,17,11,11,10,9,9,14,10,13,8,11,11,10,10,10,10,10,9,11]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-update","numbers":{"100-10000":{"min":15,"max":87,"avg":23.89,"total":2389,"runs":[87,83,34,31,40,24,26,23,24,25,24,39,25,24,32,27,34,23,29,27,21,25,26,24,30,21,31,21,23,29,24,34,25,29,20,22,25,24,22,18,35,19,23,25,31,22,21,22,20,22,22,20,21,25,21,15,21,16,17,21,17,18,19,17,17,19,15,19,23,18,18,16,18,16,20,17,19,45,17,19,19,18,18,16,18,17,18,36,16,18,23,20,21,20,19,21,18,15,19,18]}},"meta":{}}
{"scenario":"x100: basic CRUD regular","operation":"crud-delete","numbers":{"100-10000":{"min":10,"max":54,"avg":15.93,"total":1593,"runs":[52,54,20,25,17,14,26,20,19,16,15,20,16,13,18,13,15,15,19,18,15,18,13,18,18,18,17,14,14,18,15,17,17,34,13,14,16,17,15,18,19,18,21,13,21,14,53,14,17,15,13,11,14,14,12,13,11,12,12,12,10,13,13,12,14,13,12,12,12,11,13,14,10,12,12,14,12,25,11,10,16,14,11,11,13,11,11,13,11,13,11,14,13,12,11,15,11,12,10,12]}},"meta":{}}
{"scenario":"x100: list plain physical","operation":"search","numbers":{"100-10000":{"min":68,"max":440,"avg":82.12,"total":8212,"runs":[440,141,96,91,98,81,84,87,84,82,90,94,77,80,90,83,94,81,81,84,78,83,82,84,80,87,75,79,80,75,84,77,88,75,80,78,79,79,83,82,79,78,82,75,98,82,78,76,72,75,87,73,75,70,73,79,70,91,68,73,70,73,72,69,74,72,69,72,69,87,72,75,77,70,69,71,73,76,70,74,75,74,78,80,73,70,70,69,71,78,76,73,70,74,71,78,69,70,69,70]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-create","numbers":{"100-10000":{"min":11,"max":187,"avg":19.9,"total":1990,"runs":[187,57,28,32,20,19,24,20,20,23,19,17,22,30,21,24,15,17,22,16,27,15,22,17,20,22,25,19,29,21,16,21,20,20,21,19,18,21,17,17,17,19,20,16,18,17,14,12,14,16,18,15,14,13,13,16,16,24,16,15,14,12,13,16,14,43,11,15,18,13,13,15,13,16,12,14,29,18,17,13,13,16,15,16,14,20,13,20,13,12,15,16,13,13,15,13,14,13,15,19]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-lookup","numbers":{"100-10000":{"min":10,"max":183,"avg":17.31,"total":1731,"runs":[183,21,20,30,14,26,15,15,16,30,17,17,17,22,16,16,16,15,16,16,23,17,16,14,16,16,30,16,24,15,18,17,17,16,15,13,17,14,13,56,15,16,18,13,17,16,13,11,12,10,12,13,39,11,13,10,12,14,13,12,14,11,10,12,14,23,10,13,14,12,12,12,12,32,13,14,16,13,11,13,14,11,12,14,10,14,13,13,11,11,11,13,11,11,10,11,12,11,11,15]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-update","numbers":{"100-10000":{"min":19,"max":105,"avg":27.11,"total":2711,"runs":[105,39,40,29,31,37,39,35,41,32,26,38,30,37,27,31,27,31,29,34,28,28,23,24,33,25,33,28,29,27,28,28,25,31,25,25,26,32,26,38,27,24,25,21,25,24,21,24,23,20,19,22,22,22,21,21,21,24,23,21,23,22,24,21,24,22,25,23,23,22,25,21,22,26,22,22,25,25,22,28,20,22,24,23,24,33,26,25,23,22,25,35,24,24,22,23,23,22,26,28]}},"meta":{}}
{"scenario":"x100: basic CRUD physical","operation":"crud-delete","numbers":{"100-10000":{"min":13,"max":62,"avg":20.08,"total":2008,"runs":[62,27,32,19,24,21,23,24,36,22,20,23,18,25,21,26,21,25,19,20,20,30,19,19,21,21,21,22,18,17,23,22,20,33,20,32,20,21,19,18,21,17,13,21,22,19,17,14,14,24,18,17,20,18,15,14,15,14,15,17,16,16,17,15,17,17,13,21,18,18,18,16,15,20,20,22,18,18,19,22,17,18,18,19,16,23,26,19,20,17,22,17,18,17,15,13,16,16,19,17]}},"meta":{}} Comparing all these numbers (based on the jsons above):
And heap allocations: 39503.92/17870.83 ~ 2.21 times better Performance-wise not that much better, but memory-wise, quite a bit better. |
EOF |
Introduced an easter egg -- tests may fail due to the RBAC index being reused globally in the process. |
No description provided.
The text was updated successfully, but these errors were encountered: