Rust-сортировка: почему to_lowercase() с кэшированием быстрее, чем кажется, и как Unicase всех удивил
Matching Puzzle Pieces and Disappointing Benchmarks
Автор сравнивает три способа регистронезависимой сортировки строк в Rust: предварительное приведение к нижнему регистру с кэшированием, ленивое сравнение через итераторы и крейт Unicase. Бенчмарки на M2 Max показывают, что кэширование окупается уже на пяти элементах, а Unicase неожиданно обгоняет даже простой перебор символов, несмотря на более сложное сравнение. Статья содержит код и подробные результаты измерений.
Настоящий сюрприз в том, что Unicase часто оказывается быстрее, несмотря на более сложное сравнение.