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

 

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

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试