🦔

JavaScriptの文字列から数値へ変換する速度の計測

2023/01/08に公開

JavaScriptについて文字列から数値へ変換する速度を計測しました。

条件

  • Node.jsのバージョン: v19.3.0
  • ベンチマークツール: nanobench

計測条件

次の4パターンの計測を行う。

  1. Number()を使う。
  2. parseInt()を使う。
  3. 0を引くことを利用して、暗黙変換を利用する。
  4. 符号記号を利用して、暗黙変換を利用する。
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