Sheffield-iGEM / syn-zeug

A modern toolbox for synthetic biology
https://sheffield-igem.github.io/syn-zeug/
GNU Affero General Public License v3.0
6 stars 3 forks source link

Improve Benchmarks to Measure Time Complexity #28

Closed TheLostLambda closed 2 years ago

TheLostLambda commented 2 years ago

The benchmarks could be improved to run in a loop, trying each function with sequences of progressively larger sizes: https://bheisler.github.io/criterion.rs/book/user_guide/benchmarking_with_inputs.html#benchmarking-with-a-range-of-values

TheLostLambda commented 2 years ago

Done! Also, as expected, rev(), reverse_complement(), count_elements(), and convert() are all O(n) and have a 1.6-39GiBps throughput (with count_elements() still being the slowest, but on par with Julia? I think it's as good as it gets single-threaded, but we'll see)

TheLostLambda commented 2 years ago

With that speed, we should be able to run these functions over the whole human genome in less than 5 seconds!