我正在开发一个javascript应用程序,其中我有一些复杂而繁重的动画。这些动画持续几秒钟,然后系统处于空闲状态以等待用户交互,然后最终启动另一个动画。 一切都没问题,除非在动画期间发生垃圾收集......如果在系统空闲时发生,那么在动画期间不会执行它并且动画是平滑的。但是如果GC在动画期间发生,我会有一些草率的帧并且动画不顺畅。
我有什么方法可以修复/增强这个吗? (在动画期间避免GC并在系统空闲时强制执行)。
答案 0 :(得分:0)
在workers上执行计算,它们是单独的堆,并且工作程序中的GC暂停不应影响主(UI)线程。
如果你要在画布上制作动画,你也可以使用OffscreenCanvas在不同的线程上进行渲染工作。