アプリでの価格計算を高速化する必要があります。現在、JS で製品アイテムを繰り返し処理し、各製品アイテムの価格を計算しています。ネイティブモジュールを使用して高速化できるのではないかと考えていました。でもそうでもないようですよね?
シンプルな C++ ネイティブ モジュールを performance.now() でテストすると、同等の JS よりも遅くなります。乗算の 20 回の反復の単なる for ループです。
ネイティブ モジュールを使用する場合、ある種のオーバーヘッド (JSON 解析?) があると思います。
最初に約束ベースの方法を使用してみましたが、最初の実行には約15msRCT_EXPORT_METHOD
かかります。
それから試してみRCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD
ましたが、それでもJSよりも遅かったです。最初の実行には約0.4msかかりました。
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);
}, []);