JavaScriptでカラーコードをHEXからRGBにしたり、その逆を行ったりすることは良くあると思います。
その際に"#"を削除したりと、何度か文字列処理を行います。
文字列処理は比較的重い処理なので、出来れば高速なメソッドを使用したいものです。
そこで、今回はどの方法が一番早いかを検証してみました。
今回検証したのは
・substrを使う方法
・replaceを使う方法
・split,joinを使う方法
です。
検証は、以下のプログラムで行いました。
t = "#ff8000";
c = 1000000;
function fnc1(){
var h = t.substr(1,6);
return parseInt("0x"+h);
}
function fnc2(){
return parseInt(t.replace("#","0x"));
}
function fnc3(){
return parseInt(t.split("#").join("0x"));
}
var st = (new Date()).getTime();
for(var n=0;n<c;n++){
fnc1();
}
console.log("1: "+String((new Date()).getTime() - st));
var st = (new Date()).getTime();
for(var n=0;n<c;n++){
fnc2();
}
console.log("2: "+String((new Date()).getTime() - st));
var st = (new Date()).getTime();
for(var n=0;n<c;n++){
fnc3();
}
console.log("3: "+ String((new Date()).getTime() - st));
全体的にやっつけ感満載ですが、お許しを。この記事にトラックバックする