Команда ./psearch [keys] pattern [keys] directory [keys] ищет вхождения шаблона pattern в файлы директории directory и глубже в несколько потоков.
-n - искать вхождения только в текущей директории.
-t# - искать вхождения в # потоков.
По умолчанию вхождения ищутся в текущей директории и глубже в один поток.
g++ psearch.cpp -lpthread -o psearch - стандартная компиляция
g++ -fsanitize=address psearch.cpp -lp_thread -o psearch_fsanitize - компиляция с -fsanitize=address
valgrind ./psearch [keys] pattern [keys] directory [keys] - запуск под valgrind
На сравнительно небольшом наборе данных:
Input: time ./psearch int /usr/include -t1 -n
Output: real 0m0,361s user 0m0,298s sys 0m0,035s
Input: time ./psearch int /usr/include -t4 -n
Output: real 0m0,266s user 0m0,300s sys 0m0,091s
На сравнительно большом наборе данных:
Input: time ./psearch pop /usr/include -t1
Output: real 0m7,221s user 0m6,997s sys 0m0,169s
Input: time ./psearch int /usr/include -t4
Output: real 0m2,411s user 0m7,062s sys 0m0,173s