一句话,没有。
在 Web 开发中有一个不变的规则:DOM 很慢。
选择、访问和迭代 DOM 元素以及读取和修改它们的属性是您在浏览器 JS 中可以做的最慢的事情之一。另一方面,使用原生 JS 对象非常快。通常,我会尽可能避免使用 DOM。
您做出(不正确的)假设,即低内存使用率在某种程度上等同于提高性能。事实上,增加内存使用量会提高应用程序性能的情况通常是1(而不仅仅是在浏览器中) 。通过将计算结果缓存在内存中的特性,您可以避免稍后重新构建数据的处理器和时间密集型需求。当然,您必须在内存使用与性能需求之间取得平衡。
在您的情况下,我肯定会将方程对象保存在内存中。它可能使用了令人惊讶的少量内存。例如,我刚刚在 Chrome 中创建了一个包含 1,000 个整数的数组,内存分析器告诉我它使用了不到 40 kB——几乎所有的对象开销。这些值本身只占用 4 kB – 1000 * 4 字节(32 位)。
当您考虑读取 DOM 以重新生成对象的例程可能需要数十到数百毫秒(或更糟,取决于复杂性)来运行时,您为什么不只生成一次对象并保留它,尤其是因为成本这么低?
但是,与所有性能问题一样,真正的答案是您必须分析您的应用程序以查看性能瓶颈的真正位置。在您使用应用程序时,使用 Chrome 的开发者工具的配置文件选项卡获取CPU 配置文件(随时间测量处理器利用率)和堆快照(即时测量内存使用情况)。
1 - 这实际上取决于您的程序是否使用了太多内存以至于必须换出页面。在 16 GB RAM 已司空见惯的台式机上,您几乎无需担心。但是,在资源更加受限的移动设备上观察内存使用情况仍然很重要。