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

对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也是一样会有卡顿

问题别沉哈,目前在1.9.3版本上测试也一样的现象,即使我场景中什么都没有,在微信上(qq浏览器类似)必然出现0.01~0.05这样大的波动。

要不然别gc了,等游戏结束,弹出游戏结算的时候再gc一下。不知道思路对不对

顶,这个情况很严重的,除了帧率不稳,还有一个问题是间歇性的严重卡顿,但我不确定是cocos的问题还是微信的问题,观察过好几个小游戏都有这个情况

另外我怀疑这个情况可能和使用的组件有关系??之前做过一个很复杂的项目,渲染了特别多的东西,也没见到卡顿,现在一个新项目只是测试了一下tiledmap,发现人物移动的时候就会卡顿,很奇怪啊,需要去研究一下了

顶,帧率不稳。 现在的项目就卡在这个问题上了,纠结了2周啦

1.9.3 和 1.10都是这样的情况

现在1.10了,还是存在这个问题,本来设计的匀速运动,都断层了

应该是 GC 引起的,从 2.0 开始,渲染过程中已经不会分配新的内存了,应该能解决这里的卡顿问题。