从类型化数组构造 SVG 路径的最佳方法是什么?
这样的数组似乎是将数据从为 asm.js 编译的代码传输到其他 JavaScript 片段的最佳方式。
各种可能的方法浮现在脑海中。一种选择是d
在 asm.js 应用程序的源代码中构造属性文本。但是该字符串将包含很多数字,并且 emscripten 的实现sprintf
过于笼统,无法在这里提供良好的性能。所以我怀疑这种方法是否有竞争的机会。
因此,数据应该从生成的 asm.js 代码传递到手写的 JavaScript,而不是作为文本,而是作为数字。一种可能性是使用两个类型化的数组(实际上它们是相同的不同视图ArrayBuffer
)。一个保存段类型,另一个保存相关坐标。然后可以在手写代码中使用此数据来计算属性的字符串,或使用来自 SVG DOM APId
的 构建段列表。SVGPathSegList
我在这里尝试了这两种选择:http: //jsperf.com/svg-path-from-typed-arrays。
这两种方法似乎都不是特别快。 (编辑:似乎我将千位分隔符误认为是小数分隔符。如果这是正确的,并且我每秒进行了近一万次操作,而不是只有十次,那么这是完全可以接受的)
所以我 仍然想知道,有没有我错过的替代方案?有没有办法让这种操作更快?如果您想尝试新的替代方案,请随时编辑我的 jsperf。