下のエントリーに書いた、ファイルを読み込むヤツなんだけど、
デフラグかけたら、スイスイ進むようになった。
処理経過のデータをファイルにキャッシュするようにしていたので、
キャッシュファイルが数千の単位であった。
こいつの読み込みを早くしようと思ってあれこれやっていたんだけど、
前回のエントリーであるように、高速化するのはソフトウェア的には無理ってことがわかったんで、その他の要因での高速化としてデフラグをやった。
2007年02月28日
2007年02月27日
巨大なファイルの内容をメモリにすべてコピーする最速の方法って何よ
物理メモリ > 読み込むファイル の条件でファイルをメモリに読み込む場合で最速の方法って何だろう。
googleしてもそれらしいことをやっている暇な人はいないらしい。
普通、当然ディスクIOをもろにうけるため、ReadFileで大量に待たされる。
読み込んでいる最中に別の処理が出来るので便利だが、、プログラムが複雑化するのが最大の問題点。
次に、読み込んでいる間の別の処理ってやつがファイルを読み込む時間より短い場合、、、結局、ファイル読み込みに足を引っ張られるので意味がない!!
一般的にディスクIOって低速だからねぇ、意味なさ杉。
だから、OVERLAPPEDなんて誰も使わないわけね、納得。ガッテンガッテン。
読み込みは一瞬で終わる、最速。
しかし、読み込んだファイルのデータを弄っている最中に案1,案2でかからなかったウェイトがかかる。
ページフォルト? それとも、 CreateFileMappingってデータを遅延して読み込んでいるのかな? データが使われる瞬間にデータを読み込んでいるのかも??
理由はよくわからないが、読み込んだ内容にアクセスすると遅くなるので案1,案2とかわらない。
さて、どうしたものか、、、
残る選択肢は、
今やっているんだけど、MapViewOfFileExってすごくクセがある関数だなぁ、、最後のメモリを渡す所、
大量にファイルを読み込む場合、、VirtualAllocって低速だから、はじめに大量にメモリを確保して、少しづつ切り分けするルーチンも必要だよね。自分で Heapを実装する必要があるのか、、、
って、感じで挫折しそう。
結局、ソフトウェア的にはアキラメロってのが正解でFAでつか?
googleしてもそれらしいことをやっている暇な人はいないらしい。
案1 CreateFile して ReadFile
普通、当然ディスクIOをもろにうけるため、ReadFileで大量に待たされる。
案2 CreateFile して ReadFile で OVERLAPPED する
読み込んでいる最中に別の処理が出来るので便利だが、、プログラムが複雑化するのが最大の問題点。
次に、読み込んでいる間の別の処理ってやつがファイルを読み込む時間より短い場合、、、結局、ファイル読み込みに足を引っ張られるので意味がない!!
一般的にディスクIOって低速だからねぇ、意味なさ杉。
だから、OVERLAPPEDなんて誰も使わないわけね、納得。ガッテンガッテン。
案3 CreateFileMapping / MapViewOfFile (mmap)してしまう。
読み込みは一瞬で終わる、最速。
しかし、読み込んだファイルのデータを弄っている最中に案1,案2でかからなかったウェイトがかかる。
ページフォルト? それとも、 CreateFileMappingってデータを遅延して読み込んでいるのかな? データが使われる瞬間にデータを読み込んでいるのかも??
理由はよくわからないが、読み込んだ内容にアクセスすると遅くなるので案1,案2とかわらない。
さて、どうしたものか、、、
残る選択肢は、
案4 ページフォルトが起きないように VirtualAllocで確保してMapViewOfFileExする
今やっているんだけど、MapViewOfFileExってすごくクセがある関数だなぁ、、最後のメモリを渡す所、
呼び出し側プロセスのアドレス空間でマッピングを開始するメモリアドレスへのポインタを指定します。この値は、システムのメモリ割り当ての単位の倍数でなければなりません。それ以外の値を指定すると、関数は失敗します。システムのメモリ割り当ての単位を取得するには、SYSTEM_INFO 構造体のメンバを記述する GetSystemInfo 関数を使います。指定されたアドレスに十分なアドレス空間がないと、関数は失敗します。
MSDN MapViewOfFileEx より引用
大量にファイルを読み込む場合、、VirtualAllocって低速だから、はじめに大量にメモリを確保して、少しづつ切り分けするルーチンも必要だよね。自分で Heapを実装する必要があるのか、、、
って、感じで挫折しそう。
結局、ソフトウェア的にはアキラメロってのが正解でFAでつか?
2007年02月25日
もしかしてトレンドは AJAX -> SWF に移動している?
ニコニコ動画とか、rimo.tv 等が流行っているが、こいつら flashぢゃん。
今までだと、 AJAXでグリグリって感じが流行ってきたけど、
動画を相手にするなら、力不足なのかねぇ。
現在どこの位置を見ているか?って情報を毎回サーバに取りに行くわけにも行かないし、、、
flash で作成するしかないんだろうな。
javascript でも、 object タグで動画を貼り付けてあげれば、情報ぐらいは取れるんだろうが、ブラウザとOS依存の壁がある。
だったら、ブラウザとOS依存がない flash ですべて作ってしまえ!!ってことか。
Webのトレンドが、html -> javascript -> flash -> AJAX(javascript) -> flash とコンテンツ製作の要が flashに戻ってきたって感じか。 いわば、flashの復権。
#アンチjava なんで、 javaアプレットは無視します(ww
#NN4の時代にはブラウザごともっていかれ、
#ロースペックPCだとロードに大量の時間を消費させられ、、、
#ヤツには、いい思い出がないね。
思えばいろいろとあったものだ、javascript で DIV タグを弄ってアニメーションさせていた時代が懐かしい。
今までだと、 AJAXでグリグリって感じが流行ってきたけど、
動画を相手にするなら、力不足なのかねぇ。
現在どこの位置を見ているか?って情報を毎回サーバに取りに行くわけにも行かないし、、、
flash で作成するしかないんだろうな。
javascript でも、 object タグで動画を貼り付けてあげれば、情報ぐらいは取れるんだろうが、ブラウザとOS依存の壁がある。
だったら、ブラウザとOS依存がない flash ですべて作ってしまえ!!ってことか。
Webのトレンドが、html -> javascript -> flash -> AJAX(javascript) -> flash とコンテンツ製作の要が flashに戻ってきたって感じか。 いわば、flashの復権。
#アンチjava なんで、 javaアプレットは無視します(ww
#NN4の時代にはブラウザごともっていかれ、
#ロースペックPCだとロードに大量の時間を消費させられ、、、
#ヤツには、いい思い出がないね。
思えばいろいろとあったものだ、javascript で DIV タグを弄ってアニメーションさせていた時代が懐かしい。
2007年02月22日
国会議員だから守れたんだろうなぁ
国会議員だから守れたんだろうが、一般人だったら海の底なんだろうなー。暴力団と元市長があいてぢゃね、、匿名ぢゃない告発を一般人が出来るはずがない。ネット実名派は何を考えているのやら。
糸川議員脅迫 「平和奥田」相談役逮捕 警視庁 前草津市長の行方追う
最後に、平和奥田(1790)ホルダーm9(^Д^)ぷぎゃー
糸川議員脅迫 「平和奥田」相談役逮捕 警視庁 前草津市長の行方追う
東京都港区にある土地取引に関する国会質問をした国民新党の糸川正晃衆院議員(32)=比例・北陸信越=が建設業関係者らから追及をやめるよう圧力をかけられた問題で、警視庁組織犯罪対策4課は22日、暴力行為処罰法違反(共同脅迫)の疑いで、大証2部上場の建設会社「平和奥田」(滋賀県東近江市)相談役、山元康幸容疑者(49)=千葉市中央区千葉港=を逮捕。共犯の前滋賀県草津市長、芥川正次容疑者(48)の逮捕状を取り、行方を追っている。
最後に、平和奥田(1790)ホルダーm9(^Д^)ぷぎゃー

