多线程性能问题

时间:2016-10-14 15:54:13

标签: c++ multithreading vtune

我有一个多线程程序。我们使用自己的线程池实现。首先,项目的负载就足够了。 compred到单线程,两个线程的程序更快。

当我们增加大于2的线程数时,性能开始变得很糟糕。显然,我们遇到了多线程性能问题。

然后,我们开始使用英特尔®VTune™Amplifier XE 2017性能分析,我们将此工具集成到VS2013中。然后,当我点击英特尔®VTune™放大器XE的星形按钮时,一个令人惊讶的事情发生了,项目开始运行,插头收集数据。我们发现当我们通过插件启动这个项目时,随着线程数量的增加,性能变得更高,运行时间也缩短了。我们最多可以打开20个线程。时间缩短了20倍

因此,我们想知道,英特尔®VTune™Amplifier XE 2017能否改变多线程程序的运行模式?为什么会这样呢? 我很长一段时间都对这个问题感到困扰。

1 个答案:

答案 0 :(得分:1)

最后,我解决了这个问题。答案很简单。问题的原因是我用调试运行程序。如果我重定向运行* .exe,性能很好。与VTune没有任何关系,只是因为VTune直接从调用* .exe开始。