在开始这个话题前,说下我遇到的 skynet 进程 CPU100% 占用问题,查找 bug 的过程比较繁琐,后来想到做改进,这也是促成我写这篇文章的原因。
查到是一段 lua 代码有问题,这里截取其中出问题的代码:
-- 活动开始时间: 2033-01-01 00:00:00 local start_time = 1988121600 function start_activity() local now = os.time() local diff = now - start_time if diff < 0 then skynet.timeout((-diff)*100, start_activity) return end -- todo 省略活动内容 end
以上代码,通过 skynet.timeout 设置定时器,定时触发 start_activity , 看似没有问题,但是,当 skynet.timeout 第一个参数过大时,会有意想不到的收获。
继续阅读lua定位CPU100%问题