Buzzurlの中の人日記
JavaScriptのオブジェクトって、ハッシュテーブルのようにアクセスできます。ハッシュテーブルが必要なときにはオブジェクト作ってキーをプロパティとして値を突っ込んでハッシュテーブルとして使ってます。

でも、プロパティへのアクセスがあまり早くないことはよく知られていて、特に大量(と言っても数万件とかのオーダー)のデータを取り扱ったりするとすごく重くなったりするのを体験したことがある方も多いと思います。
超超高級言語とはいえ、いくらなんでもこんな遅くはならんだろうと常々いぶかしく思ってたわけです。

ふと思い立って、なんかオブジェクトのプロパティへのアクセスはハッシュテーブルと同等と勝手に思い込んでたけどもしかしてキーの数nに対してO(n)とかそれより遅いのとかになってんじゃね?とか思って確かめてみた。
まずは仕様書の和訳をざっと眺めるけど、特にプロパティアクセスに対する要求は見当たらない。(斜め読みなので要件があったらごめんなさい)
じゃあと思って調査。

やり方はキーの数100から10000まで100刻みのハッシュを用意して10000回値の読み書きを試みた。(キー数が少なすぎるけど、あんまり多くするとブラウザで実行するのがつらくなるので・・)

結果:IEもFFも読み取り書き込みともにO(1)だった。

当たり前の結果でつまんないのでベンチのソースは略。
別にハッシュテーブルの実装が悪いわけじゃなくて根本的に遅いだけだった。
この記事にコメントする
お名前
タイトル
文字色
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
プロフィール
HN:
ajiyoshi
性別:
男性
自己紹介:
プログラマです。
ソーシャルブックマークサービス「Buzzurl」の開発者です。

はてなブックマークカウンタ


旧*「ふっかつのじゅもんがちがいます」カウンタ
Buzzurl

powered by Buzzurl

Twitter

カレンダー
08 2010/09 10
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
最新コメント
[07/23 つらら]
[07/23 れいら]
[06/16 婚活]
[05/28 あっだ]
[05/28 もも]
最新トラックバック
バーコード
ブログ内検索
忍者ポイント
カウンター
アクセス解析
あわせて読みたい
あわせて読みたい
Powered by ニンジャブログ  Designed by ゆきぱんだ
Copyright c *「ふっかつのじゅもんがちがいます。」 All Rights Reserved
SEO / [PR]引越し 旅行予約