1. 程式人生 > >遠端除錯cpu過高問題

遠端除錯cpu過高問題

最近發現PlatformServer.exe的cpu佔用幾乎一直保持在100%

.exe和相關.dll加上debug info,然後用vs remote debugger遠端除錯

用Process Explorer可看到哪個執行緒佔用的cpu比較高

最終發現是mbedtls相關類在一個迴圈中

do

{

        auto ret=xxxx;

        if (ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE)
        {
            continue;
        }
 

...

}while...

在continue之前增加ShellTool::Sleep(1) 臨時解決

這個是專用於tls的工作looper,所以不會影響其他looper

以後有時間了再把tls相關功能改為全非同步非阻塞操作