很多年以前,捕鱼达人说性能卡,拿过来后我们改掉用Intel的工具查了一下性能热点,改掉里面两层for循环嵌套的地方,搞定。
后来北京触控另一个用cocos项目说手机发烫、耗电飞快,团队天天加班到半夜已经持续一周了。我们飞了个主力过去,只花了1天时间review代码,渲染的地方没有查出问题,结果人家在网路线程里面用死循环去轮询,while里面每次 sleep(1微秒),是的你没看错,1微秒。这一行代码顺手改成 sleep(20毫秒) 就搞定了,然后给他们上课讲什么叫生产者-消费者模型,怎么用事件等待。
我见过的游戏里的绝大多数闪退崩溃发热,都是这种很低级的错误,明明是通过公司内的技术培训、代码交叉审核就可以避免的。而且发热这种问题,用工具查一下热点,是非常容易的事情。

