【发布时间】:2014-07-13 08:41:52
【问题描述】:
我正在开发一个 GWT 项目,我们偶尔会使用 JSNI 来调用原生 JavaScript 代码。性能瓶颈似乎是在 Java 代码和 JavaScript 代码之间来回传递值。具体来说,无法将 byte[] 从 Java 端传递到 JS 代码中,反之亦然——只能传递 int、byte、String 等,但不能传递 byte[]。这意味着我们必须在调用之前将数组转换为字符串,然后再转换回字节数组表示(byte[] 或 UInt8Array)。这似乎没有必要,因为 GWT 的 byte[] 必须有一些原生 JavaScript 表示。有谁知道 GWT 如何表示字节数组?更改 GWT 编译器以允许我们直接访问数组可能是一种选择。
【问题讨论】:
-
JavaScript 没有
byte[]的原生概念。虽然我不确定 GWT 转换是什么,但研究(例如搜索)Typed Arrays 可能是值得的。 -
我知道没有原生的 byte[] 概念。但由于 GWT 程序可以使用 byte[]'s 并转换为 JavaScript,GWT 必须有一些 byte[]'s 的 JavaScript 表示,我只是想知道它是什么。它是类型化数组、字符串、数字数组还是...?
-
检查生成的代码?这对于特定场景来说是确定的。