Извините, я ошибся. Файл, который я считал 374 кб, на самом деле он 374 Мб.
Мда, загадочно. Можно попробовать это дело отпрофилировать.
perf record -g ./yourapplication
perf report -g --stdio
Должон показать красивое дерево, на что сколько времени потратил и почему целых 9 секунд филонил.
Дерево я получил, но оно очень большое. Поэтому я взял минимальный файл, 19 Мб, и еще увеличил буфер до 1 Мб
char buf[1048576];
Я подумал, что так дерево будет поменьше. На этом файле разброс больше, типичной можно считать выдачу:
t1=0.000 sec
t2=0.008 sec
t3=0.100 sec
t4=0.100 sec
t5=0.168 secЭффект слабо выражен, но всё же он есть. Вот скрин начала дерева:
Также я вывел это дерево в текстовой файл командой
test-Inspiron-1501 SI # perf report -g --stdio > text.txtФайл perf.data, в котором, как я понимаю, сжатая информация о дереве, длиной около 100 кб. Текстовой файл с деревом 721 кб. Но это дерево мне ничего не дает, я его не понимаю.
Да, ошибся с длиной файла, моя вина. Извините, ввел в заблуждение.