Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tokuhirom/optimize-perl-doc
how to optimize your perl code?
https://github.com/tokuhirom/optimize-perl-doc
Last synced: 18 days ago
JSON representation
how to optimize your perl code?
- Host: GitHub
- URL: https://github.com/tokuhirom/optimize-perl-doc
- Owner: tokuhirom
- Created: 2009-03-30T02:33:57.000Z (over 15 years ago)
- Default Branch: master
- Last Pushed: 2009-03-30T02:46:56.000Z (over 15 years ago)
- Last Synced: 2024-10-11T20:59:54.699Z (about 1 month ago)
- Language: Perl
- Homepage:
- Size: 83 KB
- Stars: 26
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
Awesome Lists containing this project
README
=head1 概要
本プロジェクトでは、Perl programming における、パフォーマンスチューニングの要諦について書く。
=head2 チューニングの原則
可読性/メンテナンス性とのトレードオフを意識し、メンテナンス性の低下をひきおこすようなチューニングは気をつけておこなうこと。
=head2 無根拠なチューニングはしない
マイクロオプティマイゼーションにおいて、ベンチマーク結果のみにたよったチューニングはできるだけ避け、「どうしてこちらの方が高速なのか」を常に意識するよう心がけるべきである。
=head2 ツール
=over 4
=item Benchmark.pm
Benchmark.pm は、Perl における標準のベンチマークモジュールである。cmpthese, timethese, timeit などを場合によって使いわけるようにする。本稿でも主にこれを用いる。
=item B::Terse/B::Concise
これらのモジュールをつかうと、Perl の op tree のダンプをみることができる。これをよくみることにより、「なぜこれが速くなるのか」ということが理解可能となる。
=item Devel::NYTProf
Perl5 のプロファイラはながらく Devel::DProf が標準的につかわれてきましたが、最近は Devel::NYTProf が主流となっています。Devel::NYTProf は、綺麗な HTML を生成することができ、ホットスポットがひとめでわかるので、オススメです。
最適化の基本はプロファイラなのであって、イチにもニにもプロファイラです。まずはとにかくプロファイラにかけてください。その上で考えましょう。
ホットスポットがどこなのかわからなければ、高速化はできないのです。
=back
=head2 環境
perl5 は日々開発がつづけられていますので、今日有効だったテクニックが明日は無駄になるかもしれません。
本稿では現在での最新安定版である perl5.10 を debian gnu/linux lenny 上でベンチマークをとっています。
=cut