私は Ubuntu を使用しており、コンピューター ビジョン アプリケーション (オプティカル フロー) に取り組んでおり、valgrind を使用してコードのプロファイリングを行っています。プロファイリングの結果、shared_ptr がアプリケーションの 74% を占めていることがわかりました。shared_ptr が使用されている添付コードを見つけてください。そのための最適化を探しています。その上、sprintf も非常に時間がかかり、openMP スレッドも大量に消費します。私はスプリントとopenMPのコストについて本当に疑問に思っています...
int main(int argc, char *argv[])
{
//QApplication a(argc, argv);
omp_set_dynamic( 0 );
omp_set_num_threads( 4 );
double t1, t2;
// ------------- Initialization: Frames. --------------
// Load first image
char imFName[1024];
sprintf( imFName, "%s/img_%08i.png", imPath.c_str(), imIndex );
ifstream fileExists( imFName );
if (!fileExists)
{
printf("First image %s/img_%08i.png could not be loaded!", imPath.c_str(), imIndex);
return -1;
}
QImagePtr prevImg;
QImagePtr curImg( new QImage( QString(imFName) ) );
}