Martinsos / edlib

Lightweight, super fast C/C++ (& Python) library for sequence alignment using edit (Levenshtein) distance.
http://martinsos.github.io/edlib
MIT License
493 stars 162 forks source link

Idea: implement performance tests that enable easy performance optimizations #153

Open Martinsos opened 4 years ago

Martinsos commented 4 years ago

Right now, when optimizing a part of Edlib, we often have to manually test the change in speed / performance, and since there is never enough time, that means not running all the tests we should (different scenarios, use cases, query/target lengths, alphabets, ...). This also means doing a performance optimization is a daunting task, because you need to spend more time testing and measuring performance changes than implementing the optimization.

Therefore, it would be really cool if we somehow wrote a suite of tests that would run Edlib for all the relevant scenarios (all relevant scenarios -> this is important), and would measure speed and memory usage. Then, implementing optimizations would come down to just running those tests, checking out the numbers, and deciding if optimization is good or not.