远程调试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相关功能改为全异步非阻塞操作

 

阅读更多
换一批

没有更多推荐了,返回首页