在iOS Safari上避免使用JavaScript构造/模式?

J P*_*J P 28 javascript v8 haxe ios javascriptcore

我有一个包含大量生成的JavaScript的Web应用程序.与UIWebView在(更新的)iPad上运行Web应用程序相比,在桌面上运行Chrome应用程序之间的内存消耗相差6倍.

我应该避免哪些构造或模式使iOS上的内存消耗与Chrome的内存消耗相同?

生成的JavaScript的特征:

  • 代码由Haxe生成.
  • 代码是"面向对象的",因为它大量使用prototype,但是以文明的方式.
  • 该代码大量使用JavaScript对象上的命名索引来实现哈希表.
  • 有很多字符串,但几乎没有任何字符串连接.

似乎没有任何内存泄漏; 在构建(固定的)Javascript对象时,iOS上的内存消耗过多.

Chi*_*hii -1

您可以尝试优化代码的一种潜在方法是通过 GWT(我相信其编译器是比 haxe 的 js 编译器更优化的编译器)。

我会首先将所有 haxe 代码编译为 java,然后通过 GWT 将其转换为 js,然后查看内存需求是否仍然同样高。

如果转换为 java,那么转换为 GWT 就太困难了,最接近的方法是在通过 haxe 生成的结果 javascript 上使用 google 闭包编译器。我不确定 haxe 是否能够以与 ADVANCED_OPTIMIZATION 模式( https://developers.google.com/closure/compiler/docs/compilation_levels#advanced_optimizations )兼容的方式输出 javascript ,这正是您所需要的(否则,闭包并不比简单的代码最小化器更好)。