opencv — Как я могу изменить количество сэмплов или частоту с gprof? 10,0 мс — это слишком много Ubuntu. Переполнение стека

Я работаю с Eclipse, я написал код C ++ с библиотекой OpenCV, когда я его профилировал, он дает мне 0% времени,

Каждый образец считается за 0,01 секунды.
нет времени накапливается

  %   cumulative   self              self     total
time   seconds   seconds    calls  Ts/call  Ts/call  name
0.00      0.00     0.00        2     0.00     0.00  cvScalar(double, double, double, double)
0.00      0.00     0.00        1     0.00     0.00   _GLOBAL__sub_I__ZN3Cam11getPositionEP9_IplImage
0.00      0.00     0.00        1     0.00     0.00  Oeffnecamera(CvScalar, CvScalar)
0.00      0.00     0.00        1     0.00     0.00  Berechnepositon(CvScalar, CvScalar)
0.00      0.00     0.00        1     0.00     0.00  handleVersionKratky(std::string)
0.00      0.00     0.00        1     0.00     0.00  __static_initialization_and_destruction_0(int, int)
0.00      0.00     0.00        1     0.00     0.00  Cam::getPosition(_IplImage*)
0.00      0.00     0.00        1     0.00     0.00  Cam::GetThresholdedImage(_IplImage*, CvScalar, CvScalar)
0.00      0.00     0.00        1     0.00     0.00  std::operator|(std::_Ios_Openmode, std::_Ios_Openmode)

проблема в том, что 0,01 секунды это много.
я профилировал с:

g++ -pg Name.cpp
than ./a.out

tahn gprof -b a.out > a.txt
than cut a.txt.

Как я могу изменить счетчик отсчетов, чтобы я получил 0,0001 секунду или как я могу изменить частоту

1

Решение

Спасибо за ответ с дополнительной информацией. В вашем случае я бы порекомендовал хороший профилировщик, который сэмплирует по времени настенных часов (а не только по времени процессора gprof), который сэмплирует весь стек вызовов (а не только счетчик программ как gprof), и это сообщает процентное время включительно по строке кода (не только по функции, как большинство профилировщиков). Один из них является Увеличить который не является бесплатным, но вы можете использовать пробную копию. Помните, что вам нужен процент настенных часов (не CPU) (не абсолютный), включительно (не self), на строку (не на функцию).

Многие люди думают, что они ищут «медленную функцию».
Нет. То, что вам нужно понять, в более общем смысле, Зачем программа тратит большую часть своего времени.
Вы можете получить эту информацию, только посмотрев на процентную долю времени настенных часов по строке кода.

Кроме того, я бы предположил, что вывод, который вы получите из стека-сэмплера, даст такое же хорошее или лучшее представление, чем график вызовов. Графики вызовов, как правило, содержат много не относящихся к делу деталей (блоки с низким процентом) и т. Д.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]