ミニ実装 20220412

パターン1.

dirname: simple-select

  1. 命令開始(unchiテーブルからデータを引っ張ってくる)
  2. unchiテーブル取得
  3. データ変換(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回くらいのペースで様子みてみる。

リンク

animedb/animes.csv at master · anilogia/animedb · GitHub