参考:
cocos论坛-2.4.2 CPU占用率大幅度增加,发热耗电严重很多
这个问题在2.4.7修复,所以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