🦔
JavaScriptの文字列から数値へ変換する速度の計測
JavaScriptについて文字列から数値へ変換する速度を計測しました。
条件
- Node.jsのバージョン: v19.3.0
- ベンチマークツール: nanobench
計測条件
次の4パターンの計測を行う。
- Number()を使う。
- parseInt()を使う。
- 0を引くことを利用して、暗黙変換を利用する。
- 符号記号を利用して、暗黙変換を利用する。
const bench = require('nanobench')
bench('Number()', function (b) {
b.start()
Number("1009");
b.end()
})
bench('parseInt()', function (b) {
b.start()
parseInt("1009")
b.end()
})
bench('number - 0', function (b) {
b.start()
"1009" - 0
b.end()
})
bench('+number', function (b) {
b.start()
+"1009"
b.end()
})
結果
NANOBENCH version 2
> /home/s22s1/.nodenv/versions/19.3.0/bin/node string_to_number.js
# Number()
ok ~41 μs (0 s + 40514 ns)
# parseInt()
ok ~2.58 μs (0 s + 2577 ns)
# number - 0
ok ~2.06 μs (0 s + 2058 ns)
# +number
ok ~1.82 μs (0 s + 1816 ns)
all benchmarks completed
ok ~47 μs (0 s + 46965 ns)
処理速度が「符号記号を利用して、暗黙変換を利用する」、「0を引くことを利用して、暗黙変換を利用する」、「parseInt()を使う」、「Number()を使う」の順で早かったです。
Discussion