Взял пустую Си-шную программу "int main() {}". Скомпилировал статически под Линуксом. Прогнал через valgrind, получил профиль выполнения. Отрисовал граф вызовов с помощью qcachegrind.

Какие-то непонятные tunables сжирают время, и get_cie_encoding неясно что такое.
Под FreeBSD картина несколько яснее. И эффективнее: BSD-шная библиотека за 75471 процессорных инструкций супротив 170979 в Линуксе. Это на архитектуре x86_64.

Вот как эта халабуда выглядит.gcc -g -Os -static empty.c -o empty
valgrind --tool=callgrind --dump-instr=yes --collect-jumps=yes ./empty
qcachegrind callgrind.out.*

Какие-то непонятные tunables сжирают время, и get_cie_encoding неясно что такое.
Под FreeBSD картина несколько яснее. И эффективнее: BSD-шная библиотека за 75471 процессорных инструкций супротив 170979 в Линуксе. Это на архитектуре x86_64.

