Я предполагаю, что вы спрашиваете, потому что вы хотите увидеть, что вы можете сделать, чтобы улучшить скорость программы.
Если нет, забудьте об этом.
В выводе gprof значение, которое имеет значение, является вторымстолбец, кумулятивные секунды , потому что, если эта процедура может быть сделана без времени, то это величина, на которую сокращается ваше общее время.
Одна из проблем с gprof - это игнорированиезаблокированное время как ввод / вывод.Поскольку ваша программа использует alloc_mmap
(прямо или косвенно), она отображает файл в память, поэтому она выполняет операции ввода-вывода, что зачастую является немалой стоимостью.gprof его не видит.
Есть еще проблем с gprof .Если вы используете Linux, вы можете попробовать профилировщик, например Zoom .Он сэмплирует по времени настенных часов, поэтому он не слеп для ввода / вывода.Он также дает вам процент использования времени по строкам / инструкциям, а не только по функциям, поэтому он будет точно определять строки в вашем коде, что, если бы вы могли улучшить / удалить их, обеспечило бы вам наибольшее ускорение.(Обычно это вызовы функций. «Self time» редко имеет значение, за исключением сложных математических или сложных циклов ЦП, и в любом случае это не имеет значения. Zoom обнаружит это.)
Метод, на который я полагаюсь это .