2

Что идет быстрее в Linux/Unix?

du -b file.dat

или же:

stat -c %s file.dat

2 ответа2

3

Вы можете использовать команду time чтобы узнать:

time du -b file.dat
time stat -c %s file.dat
3

Кажется, в этом примере du немного быстрее.

$ time bash -c 'for ((i=1; i<1000;i++)); do stat -c %s file1 >/dev/null; done'
real    0m3.588s
user    0m0.120s
sys 0m0.344s

$ time bash -c 'for ((i=1; i<1000;i++)); do du -b file1 >/dev/null; done'
real    0m3.161s
user    0m0.092s
sys 0m0.360s

Но лично я предпочел бы использовать stat, потому что большинство людей использует stat для получения основной информации из одного файла. Таким образом, более вероятно, что статистика будет оптимизирована для таких работ в будущем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .