Я пытаюсь оптимизировать производительность программы на С++ и сократить время ее выполнения. Тем не менее, мне трудно понять, где узкое место.
Команда временипоказывает, что сама программа занимает около 5 минут, а около 5 минут время пользовательского процессора составляет 4,5 минуты.
Профилировщик CPU (как gcc-профилировщик, так и google perftool) показывает, что вызов функции занимает всего 60 секунд в CPU. Я также попытался использовать профилировщик для выборки реального времени вместо времени процессора, и это дает мне аналогичные результаты.
Профилировщик ввода/вывода (я использовал ioapps) также показывает, что ввод/вывод занимает около 30 секунд времени работы программы.
Таким образом, в основном у меня есть 3,5 минуты (самая большая часть времени работы программы), пропавших без вести, и я считаю, что именно там есть узкое место.
Что мне не хватало, и как мне узнать, где это время?