Мне нужна помощь с точки зрения профилирования существующего кода с точки зрения времени выполнения. Цель состоит в том, чтобы ускорить его.
Мне был предоставлен код, который ранее работал. Он полностью написан на С++ с концепциями OO. Для него есть интерфейс, основанный на графическом интерфейсе, и при выборе определенной опции выполняется выбор фрагмента кода. (В рамках проекта около 11 классов).
Я хочу иметь возможность нажимать параметр GUI и запускать код и генерировать карту ресурсов, например:
Functions of Class 1 = 20% of execution time
Functions of Class 2 = 60% of execution time
Functions of Class 3 = 10% of execution time
Functions of Class 4 = 10% of execution time
Таким образом, я знаю, какой класс занимает больше всего времени, а затем знает, над чем работать и улучшаться. Однако я понятия не имею, как это сделать. У меня есть только базовые знания на C++.
Я прочитал этот пост: найти время выполнения С++, однако, поскольку программа не является последовательной. Один класс вызывает другого, и это вызывает другое, я не знаю, как системные часы/тики будут реализованы?
Я читал о программе, такой как Valgrind, Zoom, Poor Man Profiler и т.д., но, честно говоря, понятия не имею, как интегрировать ее с кодом. Есть ли более простой метод?
Я также прочитал этот метод: Как я могу создать код на С++, работающий в Linux?, однако я не вижу, как я мог получить информацию с пин-точками относительно на основе класса (класс 1, класс 2 и т.д.)
Может ли кто-нибудь проконсультироваться с новичком?