Last active
September 23, 2019 13:59
-
-
Save triacontane/8c911a9611b17438cc652abbcfb8d6d4 to your computer and use it in GitHub Desktop.
正規表現オブジェクトの生成速度に関する計測(RPGツクールMV v1.6.2)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 文字列を与えてRegExpを生成(11ms) | |
console.time(); | |
for (var i = 0; i < 10000; i++) { | |
var regexp = new RegExp('.*'); | |
} | |
console.timeEnd(); | |
// 正規表現リテラルで生成(7ms) | |
console.time(); | |
for (var i = 0; i < 10000; i++) { | |
var regexp = /.*/; | |
} | |
console.timeEnd(); | |
// あらかじめ生成して使い回し(8ms) | |
console.time(); | |
var regexp = /.*/; | |
for (var i = 0; i < 10000; i++) { | |
var regexp2 = regexp; | |
} | |
console.timeEnd(); | |
// 正規表現リテラルを与えてRegExpを生成(11ms) | |
console.time(); | |
for (var i = 0; i < 10000; i++) { | |
var regexp = new RegExp(/.*/); | |
} | |
console.timeEnd(); | |
// ただの数値を初期化(6ms) | |
console.time(); | |
for (var i = 0; i < 10000; i++) { | |
var regexp = 1; | |
} | |
console.timeEnd(); |
1フレームに何度も実行する場合、可能な限り正規表現リテラルの使用が望ましい。
ループごとにリテラルを定義する方が使い回すより若干高効率?
正規表現リテラルを与えてRegExpを生成するのは無意味なので注意。
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
実行例(誤差は+-0.5ms程度。実行順の違いによる変化なし)
default: 12.177978515625ms
default: 7.545166015625ms
default: 8.549072265625ms
default: 11.635986328125ms
default: 6.84326171875ms