К вопросу об FS
От: Cyberax Марс  
Дата: 02.03.06 16:24
Оценка: 31 (5)
Сегодня сделал тесты разных файловых систем. Исходник вот здесь:
http://rsdn.ru/File/37054/benchmark.zip (для компиляции требуется версия
Boost из CVSа).

В тесте создается каталог с N файлами, а затем M раз выполняется stat()
и fopen/fclose, где N — первый параметр, M — второй параметр.

Вот результат с Reiser4:

root@prlinux:/tmp/benchmark# ./benchmark 1000 1000000
Starting files creation...
Finished files creation. Time:0.06
Timing 'stat'...
Finished timing:2.76, 1000000 iterations.
Timing open/close...
Finished timing:6.64, 1000000 iterations.
Starting files removing...
Finished files removing. Time:0.11

root@prlinux:/tmp/benchmark# ./benchmark 100000 1000000
Starting files creation...
Finished files creation. Time:6.26
Timing 'stat'...
Finished timing:3.61, 1000000 iterations.
Timing open/close...
Finished timing:7.61, 1000000 iterations.
Starting files removing...
Finished files removing. Time:11.63

root@prlinux:/tmp/benchmark# ./benchmark 300000 1000000
Starting files creation...
Finished files creation. Time:18.77
Timing 'stat'...
Finished timing:3.77, 1000000 iterations.
Timing open/close...
Finished timing:7.6, 1000000 iterations.
Starting files removing...
Finished files removing. Time:35.85


То есть видно, что элементы добавляются за O(1), а поиск идет за O(log
N) времени. То есть Reiser4 вполне себе подходит для больших объемов
данных, особенно если учитывать возможность построения custom'ных
индексов по хранимым файлам (в том числе и по содержанию). Скорость
работы тоже вполне приемлима.

В NTFS под Windows все намного хуже — видна работа маляра Шлэмиля (или
менее оптимальные алгоритмы работы с диском):

C:\temp\benchmark\bin\msvc\release>benchmark.exe 1000 1000000
Starting files creation...
Finished files creation. Time:0.31
Timing 'stat'...
Finished timing:12.338, 1000000 iterations.
Timing open/close...
Finished timing:25.146, 1000000 iterations.
Starting files removing...
Finished files removing. Time:0.14

C:\temp\benchmark\bin\msvc\release>benchmark.exe 10000 1000000
Starting files creation...
Finished files creation. Time:3.094
Timing 'stat'...
Finished timing:13.74, 1000000 iterations.
Timing open/close...
Finished timing:25.727, 1000000 iterations.
Starting files removing...
Finished files removing. Time:3.274

C:\temp\benchmark\bin\msvc\release>benchmark.exe 50000 1000000
Starting files creation...
Finished files creation. Time:31.064
Timing 'stat'...
Finished timing:23.714, 1000000 iterations.
Timing open/close...
Finished timing:35.842, 1000000 iterations.
Starting files removing...
Finished files removing. Time:12.468

При этом тестовая виндовая намного машина лучше линуксовой.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.