C++ 为什么valgrinds计时与应用程序报告的计时不匹配?

C++ 为什么valgrinds计时与应用程序报告的计时不匹配?,c++,qt,valgrind,C++,Qt,Valgrind,我的应用程序输出的时间和valgrinds不一致 QTime myTimer; myTimer.start(); Content *items = Content_getContent(path); int get_content = myTimer.elapsed(); this->content->setContent(items); int total = myTimer.elapsed(); printf("ListPane::setPath(getContent) -- %d ms

我的应用程序输出的时间和valgrinds不一致

QTime myTimer;
myTimer.start();

Content *items = Content_getContent(path);
int get_content = myTimer.elapsed();
this->content->setContent(items);

int total = myTimer.elapsed();
printf("ListPane::setPath(getContent) -- %d ms\n", get_content);
printf("ListPane::setPath(setContent) -- %d ms\n", total-get_content);
printf("ListPane::setPath(Total)      -- %d ms\n", total);
fflush(0);
生成输出:

ListPane::setPath(getContent) -- 54004 ms ListPane::setPath(setContent) -- 132963 ms ListPane::setPath(Total) -- 186967 ms ListPane::setPath(getContent)--54004毫秒 ListPane::setPath(setContent)--132963毫秒 ListPane::setPath(总计)--186967毫秒 然而,Valgrind报告说:

Content_getContent : 64.24% ContentListWidget::setContent : 35.65% 内容:64.24% ContentListWidget::setContent:35.65%
根据经验,我倾向于同意程序输出(基于UI的响应方式)。然而,这就引出了一个问题:为什么valgrind报告的计时不正确?

测量的是什么时间?CPU时间?实时?@amdn,因为valgrind是一个用于调试和分析代码的外部实用程序,它会生成自己的输出。@Kaz哦,我的代码显然是实时的。我必须承认,我没有想到瓦尔格林可能不会记录实时。我使用默认参数运行它
sudovalgrind--tool=callgrind./foo
。那会是cpu时间吗?这有关系吗?比率是否应该匹配?设置内容调用获取内容吗?@Yakk不,先生,不匹配。