两帧之间的dt为何变化这么大

同求解决方案。 游戏周期顿卡。

可以确认是GC的问题。
例如游戏30秒卡一次,但是假如在20秒时手动GC,则时间重置为30秒。

请教该如何手动gc

哦。。。 我这个是cocos2d-js,手动GC的意思是手动调用GC方法。。调用的cc.sys.garbageCollect();

而且调用的时候游戏还是会顿卡一下。 所以并不是解决办法。

谢谢。官方一直没有答复,郁闷

不禁联想到了unity帧控制器里提供了 FixedUpdate() 这样的生命周期回调,还可设置 FixedTimestep 大小和最大值:slightly_smiling:……

对JS引擎的GC不熟,意淫下一个土法,能否控制GC与帧率或DT值关联起来,设置一个帧率或DT阙值,GC前比较下当前值和阙值,如果高于阙值则暂不GC,先让位于逻辑处理和渲染呢:innocent:

背景匀速前进是不是可以用移动camera 的方式实现,开销的应该会小。

似乎并没有camera。目前。

据我的观察,一旦gc,就是零点几秒的开销。这必然会影响画面的刷新或者对用户的响应。这两种行为都是无法避开的

1.4版本似乎仍未解决此问题。不知官方是怎么考虑的

表示都没用过dt这是干嘛的呀

Delta Time的缩写,两帧之间的时间差。

GC 的消耗取决于游戏中的内存使用,如果内存使用过多,GC 压力就会比较大,需要游戏中对逻辑进行优化,尽量少产生内存,用对象池等技术可以有效降低新内存创建。如果 GC 的消耗可观测的话,说明游戏的 JS 内存使用情况已经比较严重了,需要优化,即使是看起来很复杂的游戏也是可以做到内存很友好的

谢谢你的回答,但是,事实并非如此.
我做了一个最简单的程序,只在屏幕上显示一个浮点数,捕获超过0.2秒的dt
没有背景,没有动画,只有一个数字

谢谢,对于 JSB 层的损耗,我们接下来也会仔细审查

试了下,哪怕没有浮点,dt也有很大变化,尤其是在web。
mac下模拟器测试的效果要比windows下模拟器好很多。
打包ios后真机上很稳定

现在在ios上是正常的,在安卓上dt还是变化很大@panda

用camera也是一样会有卡顿