2011年 02月 22日

CORE::qr が呼ばれないように正規表現パターンを定数化したら速くなった

Text::Xatena の nytprof 結果を眺めていたら CORE::qr がやたら呼ばれていたので、use constant で qr// をループの外に出したら速度が多少改善した。通常の正規表現マッチは勝手にいい感じに定数っぽくしてくれるけど、正規表現パターンはしてくれないのかな。

before
-Rate   Hatena  Textile Markdown   Xatena
-Hatena   26.8/s       --     -84%     -86%     -89%
-Textile   171/s     537%       --      -8%     -27%
-Markdown  186/s     594%       9%       --     -20%
-Xatena    233/s     770%      37%      25%       --
after
+           Rate   Hatena  Textile Markdown   Xatena
+Hatena   26.5/s       --     -85%     -86%     -93%
+Textile   175/s     563%       --      -8%     -56%
+Markdown  191/s     621%       9%       --     -52%
+Xatena    395/s    1393%     125%     107%       --