NUMBER型との速度比較
NUMBER型との速度比較
雑なベンチマーク
let i, j, k, val;
for(i = 1; i <= 100; i++) {
for(j = 1; j <= 100; j++) {
for(k = 1; k <= 100; k++) {
for(l = 1; l <= 100; l++) {
val = i;
val += j;
val *= k;
val %= l;
}
}
}
}
Slide 23
Slide 23 text
NUMBER型との速度比較
NUMBER型との速度比較
Number
BigInt(数値に n を追加)
Number型で収まる範囲の演算でも、BigIntだと遅い
⇒Numberを使えるなら使ったほうがいい
real 0m0.381s ←0.38秒
user 0m0.352s
sys 0m0.029s
real 0m22.087s ←22秒!
user 0m24.116s
sys 0m0.355s
本番環境で使うには?
本番環境で使うには?
多分こういうこと
↓バベるとこうなる(多分)↓
全部の演算子を置き換えなきゃアカン
a += b; // a, bがBigInt型かどうかわからない
class BigInt { ... } // ラップ用のクラス
if (typeof a === "BigInt") {
a = a.plus(b);
} else {
a += b;
}