Взял пустую Си-шную программу "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.


no subject
Date: 2024-12-21 03:54 (UTC)Развертка стека для исключений.
no subject
Date: 2024-12-21 04:42 (UTC)no subject
Date: 2024-12-21 16:22 (UTC)no subject
Date: 2024-12-21 20:58 (UTC)no subject
Date: 2024-12-22 13:00 (UTC)Кстати, по моим не научным наблюдениям массовый программист не способен писать большие программы на с++ без тысяч предупреждений и сотен cast-ов. Это означает что массовый программист просто не способен что-либо сделать на rust. Питонизация всего на свете будет продолжаться пока она не упрется в то, что массовый программист не способен писать maintainable код на питоне, но до этого момента еще лет 10.