0
我有一個多線程程序。我們使用自己的線程池實現。首先,該項目的負載是足夠的。編譯成單線程,兩個線程的程序更快。多線程性能問題
當我們增加的線程數大於2時,性能開始糟糕。顯然,我們遇到了多線程性能問題。
然後,我們開始使用英特爾®VTune™Amplifier XE 2017性能分析,我們將此工具集成到VS2013中。然後,當我點擊英特爾®VTune™Amplifier XE的星形按鈕時,發生了一件令人驚訝的事情,該項目開始運行,插上收集數據。我們發現,當我們通過插件啓動這個項目時,隨着線程數量的增加,性能變高,運行時間縮短。我們可以打開多達20個線程。並且時間縮短了20倍
那麼,我們想知道,英特爾®VTune™Amplifier XE 2017可以改變多線程程序的運行模式嗎?爲什麼發生這種情況。 我一直很困擾這個問題。
在哪種分析類型下,您會看到應用程序性能提升?要分析線程問題,請使用併發或鎖定和等待。 – Vital
您是不是在移動平臺(例如筆記本電腦)上運行您的應用程序? – Vital
我的項目只能在windows上運行,它是一個win控制檯應用程序。是的,所有分析類型都表明性能提高。幾乎都是完美的。無鎖和等待,上下文切換少,核心交叉點少,CPU充分利用。我們也使用微軟的併發可視化器。同樣的事情發生了。即使我使用clock()函數來記錄時間,時間也縮短了! – ballontt