我们需要在我们的应用程序中进行更快的价格计算。目前我们在 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);
}, []);