我在用eclipse幹活,我寫了一個C++代碼與OpenCV庫,當我異形是他給我0%時,如何更改樣品計數或使用gprof進行頻率檢測? 10.0毫秒太多ubuntu.C++
每個樣品計數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秒或者我如何可以改變頻
您在第一次編輯時說過它很緊急。究竟是什麼問題?如果你需要時間數據,你可以把'for(i = 0; i <1000; i ++){...}'放在它的周圍,秒錶,並把結果時間除以1000.如果'opencv'有任何IO ,請注意'gprof'不會測量它,因爲它是一個CPU採樣器。如果您正在查看自己的時間,請注意它沒有意義,因爲大多數函數都將大部分時間花費在調用其他函數或I/O中。 –
嗨,問題是,我必須看看這個代碼中的每個函數花費在gprof上的時間。我需要現在哪個功能花費大部分時間,並且必須優化它。 – user3231703
我無法使用for(i = 0; i <1000; i ++){...},因爲我有一個camcapture,它只能工作一次。我必須成爲一個調用圖才能呈現它,我需要每個樣本數爲10個的gmon.out文件microseconde – user3231703