aki
akid****@s17*****
2005年 6月 1日 (水) 15:54:32 JST
わーい、予想してたの一緒だったー。 grepはぼくも見直しました。 昔は、CPUも遅くて、メモリもカツカツだったから、 その頃の速度のイメージが付いてしまってたのかな。 思ってた以上にgrepは使えますねー。 http://namazu.org/~satoru/unimag/9/ の 「grep との速度比較」を見ると、 grepで150 Mバイトのテキストファイルを検索するのに、 Pentium III 1GHz × 2 + メモリ1Gバイト で0.6秒 Pentium MMX 266 MHz + メモリ 64MB で49.04秒 だったそうです。 メモリの量が大きく影響しているようで。 今、p2.2ch.netの方では、eAcceleratorを利用して、 subject.txtの保持をメモリ内で扱ってみるのは どうかなぁと考えてます。 -- あき ----------------------- Original Message ----------------------- From: rsk <moons****@s32*****> To: p2-ph****@lists***** Date: Wed, 1 Jun 2005 02:14:16 +0900 Subject: [P2-php-dev 43] Re: tGrep > ファイルフォーマットを変更し、 > スレタイ検索:encoded_offset[TAB]title_for_search > スレッド情報:bbs[TAB]key[TAB]title > だったのを > スレタイ検索:encoded_offset[TAB]encoded_bbs[TAB]title_for_search > スレッド情報:key[TAB]title > にしました。 > これでヒットしたスレッド全ての情報を読まなくても > 板ごとにヒットしたスレッド数の統計がとれるようになったので > スレ情報は実際に表示する分だけ読み込むようにし、 > おかげでメモリに余裕ができたというわけです。 > > grepの速度低下もほとんど無いみたいです。 > grepってすげー優秀なプログラムなんだなあ、と、今更ながら感動。 > > ちなみにencoded_bbsはbbsの英字を大文字にして > 数字は半角カナに変換するという方法で > キーワードにマッチするのを無理矢理に回避してます。 > encoded_offsetも含めて、スマートとは言い難いけど > 使えるからいいや、って感じ。 > > 以下、余談。 > tGrep用のデータ生成にも使ってるPHP+PostgreSQLのシステムですが > スレ一覧のテーブルにCLUSTERを実行してテーブルを最適化してみたら > クローリングの実行時間が40%以下に短縮されてびっくり。 > 既存スレ情報の検索に時間がかかってたんだなあ。 > > // +------------------------------+ > // | rsk <moons****@s32*****> | > // +------------------------------+