Просто запустите вашу программу под valgrind . Вы, вероятно, получите 50-кратный удар по производительности.
В качестве бонуса — и это, кажется, соответствует вашему варианту использования — вы можете убедить valgrind предоставить вам графы вызовов, профилирующая информация, различные приятные вещи, такие как память -используют -до -установки ошибок, и т. д.
Например,
$ valgrind --tool=callgrind --separate-callers=30./a.out
создаст файл callgrind.out . Вы можете просмотреть эти данные профилирования внутри kcachegrind , довольно приятный графический интерфейс.
Напоминание :все профилировщики лгут. Вы должны понимать своих профилировщиков, чтобы иметь возможность оценить уровень ложной -правды.
Обратите внимание, что в случае ошибки чтения ()вернет -1, и если вы считаете это значение беззнаковым, оно почти наверняка будет больше, чем count.