Профиль OpenCV со спроф
У меня есть этот основной код OpenCV:
#include "opencv2/opencv.hpp"
int main(){
cv::Mat img = cv::imread("/home/luca/Documents/IMG_20161031_162242.jpg", cv::IMREAD_GRAYSCALE);
if(!img.data)
std::cerr<<"Error reading image"<<std::endl;
return 0;
}
Я хочу профилировать это, чтобы сделать cv::imread
параллельно (и попробуйте сделать то же самое со многими другими функциями.
Читая эту статью, я должен сделать то, что мне нужно для профилирования разделяемой библиотеки (как в моем случае opencv):
1) Скомпилируйте свою общую библиотеку (libmylib.so) в режиме отладки (-g). Нет-JP. 2) экспортировать LD_PROFILE_OUTPUT =
pwd
3) экспорт LD_PROFILE=libmylib.so 4) rm -f $LD_PROFILE.profile 4) выполнить программу, которая загружает libmylib.so 5) sprof PATH-TO-LIB/$LD_PROFILE $LD_PROFILE.profile -p >log 6) Просмотреть журнал.
У меня есть несколько вопросов:
- Как мне узнать, какие звонки из общей библиотеки
cv::imread
? - Я не знаю, если
cmake -DCMAKE_BUILD_TYPE=DEBUG ...
включает в себя-g
(на самом деле я так не думаю). Читая здесь, я мог сделать это, отредактировавCMakeLists.txt
с:
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g")
Но я не знаю, где его установить CMakeLists.txt