Perlの正規表現をプロファイルするにはどうすればよいですか?
質問
Perlの正規表現をプロファイリングして、どれだけ高価かを判断する最良の方法は何ですか?
解決
Perlには Benchmark モジュールが付属しており、多数のコードサンプルを取得して回答できます。 「どちらが速いですか?」という質問。
brian d foyには、 Perlのマスタリングにベンチマークに関する excellent の章もあります。 本。彼は章をドラフトとしてオンラインで公開するのに十分なほど親切でした、これは読む価値があります。本当にお勧めできません。
ポール
他のヒント
「ベンチマークを使用する」とだけ言ってください。ただし、モジュールは質問に実際には答えません。正規表現のベンチマークは、計算のベンチマークとは異なります。大量の現実的なデータが必要なので、実際のデータと同じように正規表現にストレスをかけることができます。ほとんどのデータが一致する場合、すぐに一致する正規表現が必要です。ほとんどが失敗する場合、すぐに失敗する正規表現が必要です。それらは同じ正規表現になる可能性がありますが、そうではないかもしれません。
REへの大量の入力データセットを用意し、そのデータをN回(たとえば100,000)処理して、所要時間を確認することをお勧めします。
その後、REを微調整して再試行します(Perl 7にどのような素晴らしい最適化が現れるかを知っているので、将来再びベンチマークを行う必要がある場合に備えて、すべての古いREをコメントとして保持しますか?)
REを分析して特定の入力の実行パスを提供するツール(DBMSの分析ツールなど)がありますが、Perlは怠zyな言語(Larry自身が伝えた命令)なので、それを見つけるために迷惑をかけることができませんでした:-)。