【发布时间】:2018-10-11 11:06:27
【问题描述】:
我的 pixi.js 游戏出了点问题。它每秒分配 1MB,3 秒后 GS 释放它。以此类推,无穷无尽。
我当然读过这篇文章,但 Chrome 工具似乎无法检测到问题 - 当我记录分配时间线时 - 它显示了一些罕见的尖峰,选择时 - 显示一些功能,但也有恒定的微小内存分配的峰值,不显示任何内容。我选择了它们,但在函数列表中我什么也看不到!
在逐帧代码中,我优化了所有内容 - 当我关闭 pixi 时 - 内存不会移动。只有当我在每一帧上进行 pixi 渲染场景时,这个恒定的分配/释放才会开始并且永远不会结束。在 PC 上没问题,但在移动设备上每 10 秒冻结 5 秒 - 无法播放。
是否有人在他们的代码中遇到频繁的分配/GC?如果是 - 你是如何调试它的,你是如何修复它的?
【问题讨论】:
-
嗯...渲染需要内存。就是这样。
-
如果您的计算量很大,请将其转移给网络工作者。然后使用 postmessage 获取游戏状态更新。它允许您将游戏线程与渲染线程分开。
-
鉴于您的问题陈述,尚不清楚您期望什么样的帮助。我们不知道你的代码在做什么,在哪里,何时,如何,什么都没有。
-
你在玩游戏。一个游戏有大量的计算。碰撞检测、实体更新、精灵移动、游戏事件、光线追踪、射弹弧计算等……所有这些结合起来最终会变得非常繁重,导致大量局部变量移入和移出作用域函数。 1mb 的数据很多,这意味着大量的计算。这将由渲染计算引起。将游戏线程与渲染线程分开会释放一些计算时间。
-
目前,meta.stackoverflow.com 上因一篇博文而引起了很多关于“友善”等的讨论。我不太在乎。让我们不要在这篇文章中讨论元问题,而是保持主题。
标签: javascript performance google-chrome-devtools pixi.js