其他分享
首页 > 其他分享> > 【问题】websocket导致cpu占用率高,发热耗电

【问题】websocket导致cpu占用率高,发热耗电

作者:互联网

参考:

cocos论坛-2.4.2 CPU占用率大幅度增加,发热耗电严重很多

 

这个问题在2.4.7修复,但是之前的版本需要修改。

这个修改在我们自己项目里也用到。

就是要将

lws_service(__wsContext, 4);
改成
lws_service(__wsContext, 2);
std::this_thread::sleep_for(std::chrono::milliseconds(3));

 

2.4.4版本:

 

2.4.10版本:

 

 

英文注释解释如下:

//传递给“lws_service”的第二个参数表示轮询websocket事件时的超时(毫秒)。

//值越低越好,否则可能会触发高CPU使用率。

//我们在“lws_service”中设置2ms,然后休眠3ms以降低CPU成本。

//由于消息在websocket线程中接收,而用户代码在cocos线程中,我们需要将事件发布到

//cocos线程并通过“调度程序::performFunctionInCocosThread”触发用户回调。如果设置了游戏的fps

//到60(16.66ms),延迟将为(2ms+3ms+16.66毫秒+互联网延迟)>21ms

 

 

 

搜索

复制

标签:cocos,websocket,service,lws,CPU,线程,占用率,cpu,2.4
来源: https://www.cnblogs.com/gamedaybyday/p/16688430.html