1

我们需要在我们的应用程序中进行更快的价格计算。目前我们在 JS 中迭代产品项目并计算每个产品项目的价格。我在想也许本机模块可以用于更快的速度。但好像不像?

当我使用 performance.now() 测试一个简单的 C++ 本机模块时,它比 JS 等效模块要慢。它只是一个 20 次乘法迭代的 for 循环。

我想在使用本机模块时会有某种开销(JSON 解析?)。

首先我尝试使用基于 promise 的RCT_EXPORT_METHOD方式,第一次执行大约需要15ms

然后我尝试RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD了,但它仍然比 JS 慢。第一次执行大约需要0.4 毫秒。

JS第一次执行大约需要0.0025 毫秒。

仅用于迭代和计算价格的本机模块是一个坏主意/它不会比 JS 快吗?

编码:

  int multiply(float a, float b)
  {
    for (int i = 0; i < 100; i++)
    {
      int test = a * b;
    }

    return a * b;
  }
  // Native module
  React.useEffect(() => {
    const p1 = performance.now();
    const test = multiply(3, 7);
    const p2 = performance.now();
    const result = p2 - p1;
    console.log(`A: ${result}`, test);
  }, []);

  // JS
  React.useEffect(() => {
    const p1 = performance.now();
    const test = 3 * 7;
    for (let i = 0; i < 20; i++) {
      const a = 3 * 7;
    }
    const p2 = performance.now();
    const result = p2 - p1;
    console.log(`B: ${result}`, test);
  }, []);

4

0 回答 0