Javascript パフォーマンスを比較した結果の一覧
Javascriptで、同様の結果となる処理を指定した回数行った結果を表示してます。基本的には、chromeとfirefoxで計測してます。
計測(パフォーマンス)結果一覧
「performance.now」を使用して、実際に実行した結果をまとめてます。
構文系
- 「if文」と「三項演算子」のパフォーマンスを計測する
- 条件処理で「if」と「&&」のパフォーマンスを計測する
- 繰り返し処理で「for」と「forEach」とのパフォーマンスを計測する
- undefinedの判定処理で「typeof」と「toString.call」とのパフォーマンスを計測する
- boolean型の判定処理で「typeof」と「if」と「!!」と「toString.call」のパフォーマンスを計測する
文字列操作
- 文字検索処理で「正規表現」と「includes」と「indexOf」とのパフォーマンスを計測する
- 文字全置換で「replaceAll」と「replace(正規表現)」とのパフォーマンスを計測する
- 文字列結合時で「+」と「concat」とのパフォーマンスを計測する
- 変数の文字列結合で「+」と「リテラルテンプレート」とのパフォーマンスを計測する
- 数値型への変換で「parseInt」と「Number」のパフォーマンスを計測する
- 文字削除処理で「replace」と「slice」と「substring」のパフォーマンスを計測する
- 改行の置換処理で「split・join」と「replace」とのパフォーマンスを計測する
- 文字の変換処理で「正規表現」と「RegExp」のパフォーマンスを計測する
- 前後の空白の除去処理で「trim」と「replace(正規表現)」のパフォーマンスを計測する
- 文字列の反転処理で「split(“”).reverse().join(“”)」と「再帰的な関数」と「reduceRight」のパフォーマンスを計測する
- 文字列内の文字のカウント処理で「charAt」と「正規表現」とのパフォーマンスを計測する
数値系
- 絶対値を取得する処理で「Math.abs」と「自作関数」のパフォーマンスを計測する
- うるう年の判定処理で「if文」と「new Date」とのパフォーマンスを計測する
- 数値文字列化で「String」と「toString」と「+」とのパフォーマンスを計測する
- 少数の切り捨て処理で「Math.trunc」と「parseInt」と「演算子」のパフォーマンスを計測する
- 数値の通貨変換で「Intl.NumberFormat」と「toLocaleString」とのパフォーマンスを計測する
- 数値を2桁に0埋めする処理で「slice」と「padStart」のパフォーマンスを計測する
- 数値からカンマを削除する処理で「replace」と「splitとjoin」とのパフォーマンスを計測する
配列操作
- 連続した配列を作成する処理で「Array.apply」と「Array().fill」のパフォーマンスを計測する
- 空の2次元配列作成処理で「for」と「Array.from」と「fill map」のパフォーマンスを計測する
- 二次元配列に空の値が含まれているか判定する処理で「some」と「filter+includes」と「for文」のパフォーマンスを計測する
- オブジェクトの配列取得処理で「forEach」と「find」のパフォーマンスを計測する
- 配列から重複を除く処理で「set」と「filter」のパフォーマンスを計測する
- 文字列配列化で「split」と「Array.from」と「スプレッド構文」とのパフォーマンスを計測する
- 配列の値を1つ追加する処理で「length」と「push」とのパフォーマンスを計測する
- 配列の値を全て取得する処理で「for」と「forEach」と「for of」とのパフォーマンスを計測する
- 配列のオブジェクト化処理で「Object.assign」と「reduce」と「スプレッド構文」のパフォーマンスを計測する
- 配列の結合処理で「push.apply」と「concat」とのパフォーマンスを計測する
- 配列の総和処理で「for」と「forEach」と「reduce」とのパフォーマンスを計測する
- 配列1次元化で「flat」と「concatとスプレッド構文」とのパフォーマンスを計測する
- 配列であるかの判定処理で「Array.isArray」と「instanceof Array」とのパフォーマンスを計測する
- ランダムな配列の生成処理で「Array.apply」と「Array().fill」のパフォーマンスを計測する
- 配列の分割処理で「splice」と「slice」とのパフォーマンスを計測する
- 配列に指定した値が含まれているかを判定する処理で「some」と「includes」と「for文」と「indexOf」のパフォーマンスを計測する
- HTMLCollectionの配列化で「スプレッド構文」と「Array.from」と「[].slice.call」と「Object.values」のパフォーマンスを計測する
- setの結合処理で「スプレッド構文」と「addを使用した関数」のパフォーマンスを計測する
- 二次元配列をオブジェクトに変換する処理で「Object.fromEntries」と「reduce」と「for文」とのパフォーマンスを計測する
- 配列のシャローコピー処理で「スプレッド構文」と「Array.from」と「concat」と「slice」のパフォーマンスを計測する
オブジェクト
- オブジェクトの空判定処理で「Object.keys」と「hasOwnProperty」のパフォーマンスを計測する
- オブジェクトのプロパティ追加処理で「.」と「[]」のパフォーマンスを計測する
- オブジェクトの長さ取得処理で「Object.keys」と「for in」のパフォーマンスを計測する
- オブジェクトの値を抽出する処理で「Object.keys」と「Object.getOwnPropertyNames」と「Reflect.ownKeys」のパフォーマンスを計測する
- オブジェクトのプロパティ存在チェック処理で「hasOwnProperty」と「in」のパフォーマンスを計測する
- オブジェクトをループさせる処理で「forEach」と「map」と「for文」と「外部ライブラリ」のパフォーマンスを計測する
- オブジェクトの最初の要素を削除する処理で「shift」と「インデックス0を指定」のパフォーマンスを計測する
- オブジェクトの最後の要素を削除する処理で「pop」と「length」のパフォーマンスを計測する