【JavaScript】ベンチをとってみる<オブジェクトをキーに出来るハッシュのようなもの
すべてのオブジェクトをキーにできるハッシュの様なもの - IT戦記と
【JavaScript】オブジェクトをキーに出来るハッシュのようなもの……って、これじゃだめ?と、それぞれベンチマークを取って見ました。
(function(){
print('<a href="http://d.hatena.ne.jp/amachang/20080212/1202805356">すべてのオブジェクトをキーにできるハッシュの様なもの - IT戦記</a>の方法\n');
var dict = new Dictionary();
var keyno=0,keys=[],val;
print('SET '+count+' 回: '+bench(count,function(){
keys[keyno]=new Function('print('+keyno+')');
dict(keys[keyno],keyno++);
})+'ms<br />');
print('GET(0) '+count+' 回: '+bench(count,function(){
val=dict(keys[0]);
})+'ms');
print('※dict('+keys[0].toString()+')='+val+'<br />');
var mid=~~(keyno/2)-1;
print('GET('+mid+') '+count+' 回: '+bench(count,function(){
val=dict(keys[mid]);
})+'ms');
print('※dict('+keys[mid].toString()+')='+val+'<br />');
print('GET('+(keyno-1)+') '+count+' 回: '+bench(count,function(){
val=dict(keys[keyno-1]);
})+'ms');
print('※dict('+keys[keyno-1].toString()+')='+val+'<br />');
})();
print('');
(function(){
print('<a href="http://furyu.tea-nifty.com/annex/2008/02/javascript_bc80.html">風柳亭 - 別館:書庫のある庵 -: 【JavaScript】オブジェクトをキーに出来るハッシュのようなもの……って、これじゃだめ?</a>の方法\n');
var assoca = new Object.associativeArray();
var keyno=0,keys=[],val;
print('SET '+count+' 回: '+bench(count,function(){
keys[keyno]=new Function('print('+keyno+')');
assoca.set(keys[keyno],keyno++);
})+'ms<br />');
print('GET(0) '+count+' 回: '+bench(count,function(){
val=assoca.get(keys[0]);
})+'ms');
print('※assoca.get('+keys[0].toString()+')='+val+'<br />');
var mid=~~(keyno/2)-1;
print('GET('+mid+') '+count+' 回: '+bench(count,function(){
val=assoca.get(keys[mid]);
})+'ms');
print('※assoca.get('+keys[mid].toString()+')='+val+'<br />');
print('GET('+(keyno-1)+') '+count+' 回: '+bench(count,function(){
val=assoca.get(keys[keyno-1]);
})+'ms');
print('※assoca.get('+keys[keyno-1].toString()+')='+val+'<br />');
})();
SET 500 回: 594ms
GET(0) 500 回: 1250ms
※dict(function anonymous() { print(0) })=0
GET(249) 500 回: 547ms
※dict(function anonymous() { print(249) })=249
GET(499) 500 回: 0ms
※dict(function anonymous() { print(499) })=499
風柳亭 - 別館:書庫のある庵 -: 【JavaScript】オブジェクトをキーに出来るハッシュのようなもの……って、これじゃだめ?の方法
SET 500 回: 47ms
GET(0) 500 回: 0ms
※assoca.get(function anonymous() { print(0) })=0
GET(249) 500 回: 16ms
※assoca.get(function anonymous() { print(249) })=249
GET(499) 500 回: 0ms
※assoca.get(function anonymous() { print(499) })=499
ある意味、当たり前の結果に。
999回だと発生しない……なに、この意図的な数字(苦笑)。
2008/02/15(金) 00:38 | 固定リンク
| 記事の編集(管理者用)
「おもいつき」カテゴリの記事
- ちょっと小細工:textareaの高さを自動調節(2008.05.21)
- Yin and Yang:動作改善(?)他(2008.05.14)
- ノイズキャンセル(マスク|マイク)ってないのかな?(2008.05.07)
- 『はてブBOX』と、ココログ用『はてブコメント表示欄』スクリプトの更新(2008.05.05)
- Yin and Yang:リンク先の内容をその場で表示するスクリプトの更新(2008.05.02)
「パソコン・インターネット」カテゴリの記事
- ツールを作る側は対象に与える影響をどこまで気にするか?(2008.05.29)
- "『無断リンクはやめて』という人にはしない方向で"の思考過程(2008.05.24)
- 『無断リンクはやめて』という人にはしない方向で(2008.05.22)
- ちょっと小細工:textareaの高さを自動調節(2008.05.21)
- Yin and Yang:動作改善(?)他(2008.05.14)

