goo blog サービス終了のお知らせ 

ITシステムのマネージメントノウハウ

IT関連の会社で働く著者が日頃考えていることをメモしていくと、いつの日かマネージメントノウハウになるはずブログ

SOCKET vs FILEアクセス (vs シェアメモ)

2006-10-09 23:04:58 | 技術的な話
ファイルアクセスとsocketってどっちがはやいんだろうね?

まあ、あれです。
PHPでコンフィグファイルから初期設定を読み込んでいるのだけど、
毎ページ表示するごとにファイルにアクセスするのもいかがなものかと。
んで、それを早くするテストってわけ。

仕様としては次の比較になります。

★ファイルアクセス
単純なファイルアクセス。
ファイルをオープンし、freadで読み込んで、クローズする。

★SOCKET I/F
SOCKET Serverはlocalhostに起動し、localhostから呼び出す。
Server側は変数に保存された(つまりオンメモリ上のデータを)返す仕様。

さーて、どっちが早いかな。


結果は
SOCKET     :0.00169 sec
ファイルアクセス:0.000276 sec

ファイルアクセスのほうが6~7倍早いですなあ。

当初の予測では、オンメモリである分SOCKETの方が早いと思っていたのだけど、
  ・ディスクのキャッシュが利いている
  ・SOCKET通信だと、localhostでもNetwork I/Fへのアクセスが発生?
なので、ファイルアクセスの方が早い結果になったと自己分析。


shared memoryが使えればもっとよいのだろうけど、Unix onlyだねー。

(追記)
shared memoryも計ってみたところ
0.00077

それでもファイルアクセスが早い。


1 コメント(10/1 コメント投稿終了予定)

コメント日が  古い順  |   新しい順
情報提供 (しん)
2007-01-20 21:09:34
shared memoryという名前はUNIXだけだけど、
Windowsも似たような技術で
共有メモリってものがあるのですよ。
(実際のシステム開発でもやったことがあるので^^)

CreateFileMappingあたりを調べてみればわかります。
興味がございましたらお調べくださいまし。
返信する