パターン1.
dirname: simple-select
- 命令開始(unchiテーブルからデータを引っ張ってくる)
- unchiテーブル取得
- データ変換(json)
インデックスデータをあらかじめメモリにロードする。
デーモン化は間に合わなかったのでCLIで実現。
結果は以下の通り
command[search, index, quit]: search
key: title
query: ジョジョ
user system total real
search ジョジョの奇妙な冒険
ジョジョの奇妙な冒険
ジョジョの奇妙な冒険 ファントム ブラッド
ジョジョの奇妙な冒険
ジョジョの奇妙な冒険 スターダストクルセイダース
ジョジョの奇妙な冒険 スターダストクルセイダース エジプト編
ジョジョの奇妙な冒険 ダイヤモンドは砕けない
0.347801 0.008845 0.356646 ( 0.360289)
index searchジョジョの奇妙な冒険
ジョジョの奇妙な冒険
ジョジョの奇妙な冒険 ファントム ブラッド
ジョジョの奇妙な冒険
ジョジョの奇妙な冒険 スターダストクルセイダース
ジョジョの奇妙な冒険 スターダストクルセイダース エジプト編
ジョジョの奇妙な冒険 ダイヤモンドは砕けない
0.286480 0.004108 0.290588 ( 0.292941)
success.
command[search, index, quit]:
indexの方が僅かに早い。
理由考察
indexなしの場合部分一致(includes?)で検索しているのがかなりネック。
keyから行番号を取得して、その中で一番最後までしか読まない点が大きい。
次の実装
- TCPソケットでやりとりできるようにしたい。
- 同時リクエストを追加。30秒間、1秒に3回くらいのペースで様子みてみる。