benchmark: add a benchmark for URLSearchParams creation and toString()#46810
Conversation
|
I am also trying to improve the perf of confidence improvement accuracy (*) (**) (***)
url/url-searchparams-toString.js n=1000000 type='array' *** 23.29 % ±4.91% ±6.54% ±8.51%
url/url-searchparams-toString.js n=1000000 type='encodelast' -4.55 % ±4.63% ±6.16% ±8.03%
url/url-searchparams-toString.js n=1000000 type='encodemany' * -4.37 % ±3.99% ±5.31% ±6.92%
url/url-searchparams-toString.js n=1000000 type='multiprimitives' -4.40 % ±4.43% ±5.90% ±7.68%
url/url-searchparams-toString.js n=1000000 type='noencode' -1.37 % ±4.41% ±5.87% ±7.64%Trying to follow the cues from the code of https://github.com/anonrig/fast-querystring but it seems the main bottleneck lies in the regex checking over Line 78 in f15896c which is required for spec compliance I believe? so cannot entirely copy the code from https://github.com/anonrig/fast-querystring too? If anyone has any more ideas would be grateful!! |
|
|
||
| bench.start(); | ||
| for (let i = 0; i < n; i++) | ||
| new URLSearchParams(input).toString(); |
There was a problem hiding this comment.
If you are only testing the performance of toString, it feels like initialization should not be inside the bench.
There was a problem hiding this comment.
Maybe we should spilt it into two, there is also no benchmark for the creation of the URLSearchParams object would that be good?
1c52b18 to
b2bd057
Compare
|
Used all types of possible parameter types for |
|
cc @nodejs/performance @nodejs/url |
mcollina
left a comment
There was a problem hiding this comment.
I think it might be more useful to compare it against querystring than on itself.
|
Is there any example of comparative benchmarks with other functions in our benchmark tests? |
|
Ok we already have |
This comment was marked as outdated.
This comment was marked as outdated.
|
Landed in 28c9fb9 |
Refs: nodejs/performance#56 PR-URL: #46810 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Refs: nodejs/performance#56 PR-URL: #46810 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Refs: nodejs/performance#56 PR-URL: #46810 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Was trying to work on nodejs/performance#56 noticed there is no benchmark on
URLSearchParams.toString()hence adding one same asbenchmark/querystring/querystring-stringify.jsRefs: nodejs/performance#56