Refactor zpm-semver Range to BoundSet representation#222
Refactor zpm-semver Range to BoundSet representation#222cijiugechu wants to merge 2 commits intoyarnpkg:mainfrom
Conversation
⏱️ Benchmark Results
📊 Raw benchmark dataBase times: 3.249s, 3.032s, 3.119s, 3.205s, 3.075s, 3.208s, 3.070s, 3.091s, 3.170s, 3.193s, 3.121s, 3.080s, 3.026s, 3.050s, 3.130s, 3.112s, 3.055s, 3.149s, 3.178s, 3.008s, 3.103s, 3.093s, 2.979s, 3.111s, 3.148s, 3.113s, 3.056s, 3.136s, 3.148s, 3.156s Head times: 3.102s, 3.033s, 3.045s, 3.127s, 3.070s, 3.252s, 3.314s, 3.319s, 3.082s, 3.182s, 3.074s, 3.157s, 3.134s, 3.032s, 3.042s, 3.003s, 3.046s, 3.113s, 3.100s, 3.015s, 3.120s, 3.098s, 3.044s, 3.108s, 3.085s, 3.113s, 3.104s, 3.026s, 3.025s, 3.142s Benchmark: |
|
The changes seem a little drastic; are they necessary? I kinda liked the RPN "bytecode", although I'm not against changing it if there's a good reason. |
Thanks for the feedback. I did this refactor to reduce Vec clones and recursion depth, hoping for better performance. But the benchmarks don’t show a clear improvement 😅. So I think keeping the previous type layout is the better choice. |
I’ll look for a way to finish the unbounded range TODO while keeping the previous type layout. |
Use BoundSet representation taken from nodejs-semver. Resolved todo.