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

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

aoking.hatenablog.jp

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

続きを読む

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

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

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

developer.cybozu.co.jp

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

続きを読む

鴨川、伊勢海老、父の還暦祝い

父が定年を待たずに退職し、農業や釣りを楽しむ人生を送りはじめたのが今から三年前。近所の那珂川で鮎釣りをしたり様々な農作物を育てたり、養蜂をしたいと言い出してニホンミツバチを採取に四苦八苦したりと、それなりに楽しんだ人生を送っているようだ。

そんな父がもうすぐ60歳を迎えることになった。これを機に、家族旅行に行くことにした。

続きを読む

プログラマ10年目を迎える前に

気づいたらプログラマとしてお金を稼ぎ始めて9年が経ち、もうすぐ10年目という節目を迎えることになっていた。
そろそろ、振り返りをしてみようと思う。

中学生の頃に友人に借りたファイナルファンタジー7に熱中したあまり、「こんなゲームを作ってみたい」と思い始めてから 14 年くらい経つことになる。高校生になって「やさしいC」を買って挫折し、「やさしいJava」を買ったのが Java プログラマの始まりだった。

続きを読む

Google Guava の transform, filter 系のお話

Java 派な皆様は本日も Google Guava の恩恵を受けていることかと思われます。

ある時自社プロダクトのパフォーマンスを調べていて、プロファイルを取ったところLists.transform が上位に出てきてました。

続きを読む