NVMe のおかげで IO がボトルネックの時代が終わりそうです

先日のエントリでも紹介しましたが、NVMe という凄いやつがいます。少しずつ浸透しつつはあるもののまだ一般的な知名度は低いようなのでひとつ紹介しておきましょう。

NVMe とはストレージとコンピューターをつなぐインターフェースのことです。この NVMe のおかげで、SSD が真価を発揮できるようになりました。

続きを読む

grep と sift を比較した

sift というツールがあります。
https://sift-tool.org/

sift は better grepツールで、上記サイトのパフォーマンスによるとすべての場合において grep より速く、場合によっては 40 倍速以上のパフォーマンスを出すという、嘘だろ承太郎!?な状態なのでこの怪しい伝説を検証してみます。
https://sift-tool.org/info.html

続きを読む

再・Solr のパフォーマンスチューニング

三年ほど前、Solr のパフォーマンスチューニングの記事を書いた。

aoking.hatenablog.jp

これは古くなっており、現在の Solr では通用しない部分が多い。
改めて、現在の Solr のパフォーマンスチューニングに対する知見をここに記す。

続きを読む

遺伝的アルゴリズムで遅い正規表現を検出する

ある正規表現に様々な文字列を食わせてマッチするかどうか判定することは大変頻出するコードです。
稀に、食わせる文字列のパターンによっては正規表現のマッチに猛烈に時間を消費する場合があります。

僕も少し前に遭遇し、下記に公開しています。

developer.cybozu.co.jp

この時は、(\\w|_){1,64}@ という正規表現があって、____________________ のようにアンダースコアを複数含む文字列のマッチに大変時間がかかるという問題でした。
この、「対象文字列によってはマッチに時間がかかることがある問題」を、遺伝的アルゴリズムを用いて解決できないかチャレンジしてみましょう。

続きを読む