Factor: base benchmarking for single/multiple u64, u128, and >u128#9182
Factor: base benchmarking for single/multiple u64, u128, and >u128#9182sylvestre merged 11 commits intouutils:mainfrom
Conversation
…p the performance of calculating prime numbers for u64 and u128
… to add u64 digits from big_uint
|
please add it in the list here: .github/workflows/benchmarks.yml |
|
GNU testsuite comparison: |
|
Added to the list! |
|
GNU testsuite comparison: |
CodSpeed Performance ReportMerging #9182 will not alter performanceComparing Summary
Benchmarks breakdown
Footnotes
|
|
GNU testsuite comparison: |
|
I didn't expect it to take this long to run the benchmark. I think I'll reduce the range of numbers to iterate through for multiple_big_uint. |
|
GNU testsuite comparison: |
|
GNU testsuite comparison: |
… from divan macro
1f651e5 to
b492abd
Compare
…torize properly (factorize error take a while to propagate)
|
GNU testsuite comparison: |
|
please change the input sizes. |
|
also, 6 benchmarks seem a bit big, can we have 2 or 3 instead? thanks |
…ingle u64/u128/big_uint benchmark tests
|
I took off the single benchmark tests and kept the multiple u64/u128/BigUint benchmark tests (with smaller range of numbers to factorize) since it would be easier to notice any improvement on the factor command from those cases. In total, those 3 benchmark tests take about 350-400 ms to run (when run locally). |
|
GNU testsuite comparison: |
|
thanks |
Factor: base benchmarking for single/multiple u64, u128, and >u128
Factor: base benchmarking for single/multiple u64, u128, and >u128
|
seems that it is quite an unstable bench |
|
I took a closer look at the In fact, now that I look at it, Do you want me to comment out the |
if possible, yes, we really need something stable here |
|
The piece of randomization I see is over here: Whenever This isn't an issue for u64 integers because the small primes table fits for the numbers within the 64 bit range (especially with the sequence of 2-2502 I'm using for u64), but when you have u128 or >u128 integers, it seems like it will often drop to this loop of various factorization methods I'm not certain on how to reason about this in a stable manner for multiple u128/>u128 integers. |
Factor: base benchmarking for single/multiple u64, u128, and >u128
This PR adds benchmarking tests for the factor command to test how long uutils' factor command takes to compute the prime factors for u64/u128/>u128 values. It should also serve as a baseline for any modifications made to
src/factors.rsto check for any improvement on performance.