Skip to content

wronai/find

Repository files navigation

find

Wyniki Rust rewelacyjne — teraz Python!Teraz stwórzmy finalny raport HTML z wizualizacją:Teraz skopiuj też pliki źródłowe do outputs:Oto wyniki z prawdziwego benchmarku na 10 000 losowych plików:


Wyniki benchmarku

Python (5 metod)

Metoda "konie" "robot farma" Speedup
Naive scan 6 927 ms 8 261 ms
ThreadPool 6 299 ms 6 387 ms 1.3×
mmap scan 8 894 ms 8 664 ms 0.8× ❗
Inverted Index 0.66 ms 1.50 ms 10 000×
Whoosh BM25 114 ms 120 ms 70×

Rust (4 metody)

Metoda "konie" "robot farma" Speedup
Naive scan 3 360 ms 3 810 ms
Rayon parallel 4 140 ms 4 180 ms ~1× (overhead)
mmap + Rayon 5 490 ms 5 580 ms ~0.6× ❗
Inverted Index 0.09 ms 0.11 ms 36 000×

Kluczowe wnioski

mmap jest WOLNIEJSZY niż zwykły read() — to ważne odkrycie. Na małych plikach (nasze testowe to 20–200 słów) overhead mmap.map() per plik zabija wydajność. mmap świeci dopiero przy dużych plikach (>1 MB) czytanych wielokrotnie.

Rayon parallel też wolniejszy od sequential w tym przypadku — bo 10k małych plików = 10k syscalls i pliki są ciepłe w page cache, więc sekwencja cache-miss jest minimalna.

Inverted index: 36 000× szybszy w Rust, 10 000× w Pythonie — dokładnie to, o czym mówił Krystek. Budowa kosztuje 3–8 sekund raz, potem każde zapytanie trwa mikrosekundy.

About

Find

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors