argra****@users*****
argra****@users*****
2012年 3月 17日 (土) 01:00:23 JST
Index: docs/perl/5.10.1/perldbmfilter.pod diff -u docs/perl/5.10.1/perldbmfilter.pod:1.1 docs/perl/5.10.1/perldbmfilter.pod:1.2 --- docs/perl/5.10.1/perldbmfilter.pod:1.1 Wed Feb 15 00:40:31 2012 +++ docs/perl/5.10.1/perldbmfilter.pod Sat Mar 17 01:00:23 2012 @@ -9,7 +9,7 @@ =end original -Perl DBM フィルタ +perldbmfilter - Perl DBM フィルタ =head1 SYNOPSIS Index: docs/perl/5.10.1/perlperf.pod diff -u docs/perl/5.10.1/perlperf.pod:1.1 docs/perl/5.10.1/perlperf.pod:1.2 --- docs/perl/5.10.1/perlperf.pod:1.1 Wed Feb 15 00:40:31 2012 +++ docs/perl/5.10.1/perlperf.pod Sat Mar 17 01:00:23 2012 @@ -65,15 +65,14 @@ =end original -Perhaps the most common mistake programmers make is to attempt to optimize -their code before a program actually does anything useful - this is a bad idea. -There's no point in having an extremely fast program that doesn't work. The -first job is to get a program to I<correctly> do something B<useful>, (not to -mention ensuring the test suite is fully functional), and only then to consider -optimizing it. Having decided to optimize existing working code, there are -several simple but essential steps to consider which are intrinsic to any -optimization process. -(TBT) +おそらくプログラマが犯す最もよくある間違いは、プログラムが実際に有用な +ものになる前にコードを最適化しようとすることです - これは悪い考えです。 +うまく動かないすごく高速なプログラムには意味がありません。 +最初の仕事はプログラムが I<正しく> 何か B<有用なこと> をするようにして +(テストスイートが完全に機能することを保証するという意味ではありません)、 +それからそれを最適化することだけを考えます。 +既に動作するコードを最適化すると決めたら、あらゆる最適化プロセスに内在すると +考えられる、いくつかの単純だけれども本質的なステップがあります。 =head2 ONE STEP SIDEWAYS @@ -90,8 +89,9 @@ =end original -Firstly, you need to establish a baseline time for the existing code, which -timing needs to be reliable and repeatable. You'll probably want to use the +まず、既にあるコードの基準になる時間を決定する必要があります; ここで +時間は信頼性があって再現可能であるものです。 +You'll probably want to use the C<Benchmark> or C<Devel::DProf> modules, or something similar, for this step, or perhaps the unix system C<time> utility, whichever is appropriate. See the base of this document for a longer list of benchmarking and profiling modules, @@ -113,13 +113,12 @@ =end original -Next, having examined the program for I<hot spots>, (places where the code -seems to run slowly), change the code with the intention of making it run -faster. Using version control software, like C<subversion>, will ensure no -changes are irreversible. It's too easy to fiddle here and fiddle there - -don't change too much at any one time or you might not discover which piece of -code B<really> was the slow bit. -(TBT) +次に、プログラムの中の I<ホットスポット> (コード中で実行が遅くなっているらしい +場所) を調べ、より早く実行できるようにコードを変更します。 +C<subversion> のようなバージョンコントロールソフトを使って、全ての変更を +差し戻せるようにします。 +あちこちをいじるのはとても簡単です - 一度にたくさん変更しないようにします; +さもないとどこコードが B<本当に> 遅かったのかが分からなくなるかもしれません。 =head2 ANOTHER STEP SIDEWAYS @@ -134,11 +133,12 @@ =end original -It's not enough to say: "that will make it run faster", you have to check it. -Rerun the code under control of the benchmarking or profiling modules, from the -first step above, and check that the new code executed the B<same task> in -I<less time>. Save your work and repeat... -(TBT) +次のように言うだけでは不十分です: 「これでもっと速く動作する」; +これをチェックする必要があります。 +上述の最初のステップから、ベンチマークやプロファイリングのモジュールの +制御下でコードを再実行して、新しいコードが I<より短い時間> で、 +B<同じ処理> を実行したことをチェックします。 +作業を保存して、繰り返します…。 =head1 GENERAL GUIDELINES @@ -151,9 +151,9 @@ =end original -The critical thing when considering performance is to remember there is no such -thing as a C<Golden Bullet>, which is why there are no rules, only guidelines. -(TBT) +性能について考えるときに重要なことは、C<金の弾丸> のようなものは +ないということを忘れないことです; それがなぜここにルールがなく、 +ガイドラインだけがある理由です。 =begin original @@ -324,8 +324,7 @@ =end original -# dereference -(TBT) +# デリファレンス #!/usr/bin/perl @@ -450,8 +449,7 @@ =end original -# regex-transliterate -(TBT) +# 正規表現-文字変換 #!/usr/bin/perl @@ -517,11 +515,10 @@ =end original -A slightly larger piece of code will provide something on which a profiler can -produce more extensive reporting statistics. This example uses the simplistic -C<wordmatch> program which parses a given input file and spews out a short -report on the contents. -(TBT) +やや大きめのコードではプロファイラが生成するより大規模な状況報告が +何かを提供するでしょう。 +この例は、与えられた入力ファイルをパースして、内容の短いレポートを出力する +単純な C<wordmatch> プログラムを使います。 =begin original @@ -529,8 +526,7 @@ =end original -# wordmatch -(TBT) +# 単語マッチング #!/usr/bin/perl @@ -660,9 +656,10 @@ =end original -This venerable module has been the de-facto standard for Perl code profiling -for more than a decade, but has been replaced by a number of other modules -which have brought us back to the 21st century. Although you're recommended to +この由緒あるモジュールは 10 年以上 Perl コードプロファイリングのデファクト +スタンダードでしたが、21 世紀になって色々なその他のモジュールに +置き換えられています。 +Although you're recommended to evaluate your tool from the several mentioned here and from the CPAN list at the base of this document, (and currently L<Devel::NYTProf> seems to be the weapon of choice - see below), we'll take a quick look at the output from @@ -695,13 +692,13 @@ =end original -C<Devel::DProf> produces a special file, called F<tmon.out> by default, and -this file is read by the C<dprofpp> program, which is already installed as part -of the C<Devel::DProf> distribution. If you call C<dprofpp> with no options, -it will read the F<tmon.out> file in the current directory and produce a human -readable statistics report of the run of your program. Note that this may take -a little time. -(TBT) +C<Devel::DProf> は、デフォルトでは F<tmon.out> という名前の特殊なファイルを +出力し、このファイルは C<Devel::DProf> ディストリビューションの一部として +既にインストールされている C<dprofpp> プログラムによって読み込まれます。 +オプションなしで C<dprofpp> を呼び出すと、カレントディレクトリの +F<tmon.out> ファイルを読み込んで、あなたのプログラムの実行に関する +人間が読める形での統計情報を出力します。 +これには少し時間がかかるかもしれないことに注意してください。 $> dprofpp @@ -746,8 +743,8 @@ =end original -See also C<Apache::DProf> which hooks C<Devel::DProf> into C<mod_perl>. -(TBT) +C<Devel::DProf> を C<mod_perl> にフックする C<Apache::DProf> も +参照してください。 =head2 Devel::Profiler @@ -760,7 +757,7 @@ =end original -Let's take a look at the same program using a different profiler: +同じプログラムの他のプロファイラによる結果も見てみましょう: C<Devel::Profiler>, a drop-in Perl-only replacement for C<Devel::DProf>. The usage is very slightly different in that instead of using the special C<-d:> flag, you pull C<Devel::Profiler> in directly as a module using C<-M>. @@ -1069,8 +1066,9 @@ =end original -C<Devel::NYTProf> is the B<next generation> of Perl code profiler, fixing many -shortcomings in other tools and implementing many cool features. First of all it +C<Devel::NYTProf> は B<新世代> Perl コードプロファイラで、他のツールの +多くの欠点を修正し、多くのクールな機能を実装しています。 +First of all it can be used as either a I<line> profiler, a I<block> or a I<subroutine> profiler, all at once. It can also use sub-microsecond (100ns) resolution on systems which provide C<clock_gettime()>. It can be started and stopped even @@ -1350,8 +1348,7 @@ =end original -# logfile -(TBT) +# ログファイル 188.209-65-87.adsl-dyn.isp.belgacom.be - - [08/Feb/2007:12:57:16 +0000] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" 188.209-65-87.adsl-dyn.isp.belgacom.be - - [08/Feb/2007:12:57:16 +0000] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" @@ -1399,8 +1396,7 @@ =end original -# sort-apache-log -(TBT) +# apache のログのソート #!/usr/bin/perl -n @@ -1492,6 +1488,8 @@ =item Elapsed Real Time +(実処理時間) + =begin original The overall, or wallclock, time between when C<time> was called, and when it @@ -1509,6 +1507,8 @@ =item User CPU Time +(ユーザー CPU 時間) + =begin original The user time is the amount of time the entire process spent on behalf of the @@ -1522,6 +1522,8 @@ =item System CPU Time +(システム CPU 時間) + =begin original The system time is the amount of time the kernel itself spent executing @@ -1554,8 +1556,7 @@ =end original -# sort-apache-log-schwarzian -(TBT) +# apache のログを schwarzian ソート #!/usr/bin/perl -n @@ -1715,7 +1716,6 @@ =end original # ifdebug -(TBT) #!/usr/bin/perl @@ -1797,7 +1797,6 @@ =end original # ifdebug-constant -(TBT) #!/usr/bin/perl @@ -1903,9 +1902,8 @@ =end original -This document has provided several way to go about identifying hot-spots, and -checking whether any modifications have improved the runtime of the code. -(TBT) +この文書は、ホットスポットの識別と、どの修正がコードの実行時間を +改善するかのチェックに関するいくつかの方法を提供しました。 =begin original @@ -1932,8 +1930,7 @@ =end original -Optimizing that any further is a job for C<p5p>. -(TBT) +これ以上の最適化は C<p5p> の仕事です。 =head1 SEE ALSO @@ -1948,14 +1945,15 @@ =head2 PERLDOCS +(perldoc) + =begin original For example: C<perldoc -f sort>. =end original -例えば: C<perldoc -f sort>. -(TBT) +例えば: C<perldoc -f sort> L<perlfaq4>. @@ -1965,10 +1963,14 @@ =head2 MAN PAGES +(man ページ) + C<time>. =head2 MODULES +(モジュール) + =begin original It's not possible to individually showcase all the performance related code for @@ -1977,10 +1979,8 @@ =end original -It's not possible to individually showcase all the performance related code for -Perl here, naturally, but here's a short list of modules from the CPAN which -deserve further attention. -(TBT) +当然ながら、Perl で性能に関するコードを全て陳列することは不可能ですが、 +以下は CPAN の中からさらなる注目を受けるに値するモジュールの短いリストです。 Apache::DProf Apache::SmallProf @@ -2004,6 +2004,8 @@ =head2 URLS +(URL) + =begin original Very useful online reference material: Index: docs/perl/5.10.1/perlport.pod diff -u docs/perl/5.10.1/perlport.pod:1.1 docs/perl/5.10.1/perlport.pod:1.2 --- docs/perl/5.10.1/perlport.pod:1.1 Fri Feb 17 22:16:13 2012 +++ docs/perl/5.10.1/perlport.pod Sat Mar 17 01:00:23 2012 @@ -1213,7 +1213,7 @@ =head2 Command names versus file pathnames -(コマンド名家ファイルパス名か) +(コマンド名かファイルパス名か) =begin original @@ -1294,8 +1294,7 @@ =end original -Don't assume that you can reach the public Internet. -(TBT) +公共のインターネットに届くことを仮定しないでください。 =begin original @@ -1429,8 +1428,9 @@ =end original -In general, don't directly access the system in code meant to be -portable. That means, no C<system>, C<exec>, C<fork>, C<pipe>, +一般的に、移植性を持たせるコード内でシステムに直接 +アクセスしないでください。 +That means, no C<system>, C<exec>, C<fork>, C<pipe>, C<``>, C<qx//>, C<open> with a C<|>, nor any of the other things that makes being a perl hacker worth being. (TBT) @@ -1737,8 +1737,7 @@ =end original -Assume very little about character sets. -(TBT) +文字集合について仮定できることはほとんどありません。 =begin original @@ -1796,13 +1795,13 @@ =end original -If you may assume POSIX (a rather large assumption), you may read -more about the POSIX locale system from L<perllocale>. The locale -system at least attempts to make things a little bit more portable, -or at least more convenient and native-friendly for non-English -users. The system affects character sets and encoding, and date -and time formatting--amongst other things. -(TBT) +POSIX (比較的大きい仮定) を仮定するなら、L<perllocale> から POSIX +ロケールシステムについて多くを読めます。 +ロケールシステムは少なくとも物事をもう少し移植性のある形に +しようとする、あるいは少なくとも非英語ユーザにとってより便利で +母国語に親しくするものです。 +このシステムは文字集合とエンコーディング、日付と時刻の形式 -- 他のものに +混じって -- に影響を与えます。 =begin original @@ -1811,9 +1810,9 @@ =end original -If you really want to be international, you should consider Unicode. -See L<perluniintro> and L<perlunicode> for more information. -(TBT) +もし本当に国際化したいなら、Unicode を考慮するべきです。 +さらなる情報については L<perluniintro> と L<perlunicode> を +参照してください。 =begin original @@ -1858,10 +1857,9 @@ =end original -If your code is destined for systems with severely constrained (or -missing!) virtual memory systems then you want to be I<especially> mindful -of avoiding wasteful constructs such as: -(TBT) +あなたのコードが仮想メモリについて厳しく制限された(あるいは存在しない!) +システムで動作することになっているなら、I<特に> 以下のような無駄な +構造を避けたいです: # NOTE: this is no longer "bad" in perl5.005 for (0..10000000) {} # bad @@ -1881,11 +1879,10 @@ =end original -The last two constructs may appear unintuitive to most people. The -first repeatedly grows a string, whereas the second allocates a -large chunk of memory in one go. On some systems, the second is -more efficient that the first. -(TBT) +最後の二つの構造はほとんどの人々にとって直観的ではないかもしれません。 +一番目は徐々に文字列が大きくなり、二番目は一度に大きなメモリの塊を +割り当てます。 +システムによっては、二番目の方が一番目よりも効率的です。 =head2 Security @@ -1904,9 +1901,10 @@ =end original -Most multi-user platforms provide basic levels of security, usually -implemented at the filesystem level. Some, however, do -not-- unfortunately. Thus the notion of user id, or "home" directory, +ほとんどのマルチユーザプラットフォームでは(普通はファイルシステムで +実装された)基本的なレベルのセキュリティを提供しています。 +しかし、一部は -- 残念ながら -- そうではありません。 +Thus the notion of user id, or "home" directory, or even the state of being logged-in, may be unrecognizable on many platforms. If you write programs that are security-conscious, it is usually best to know what type of system you will be running @@ -2033,8 +2031,9 @@ =end original -Modules uploaded to CPAN are tested by a variety of volunteers on -different platforms. These CPAN testers are notified by mail of each +CPAN にアップロードされたモジュールは色々なプラットフォームで +様々なボランティアによってテストされます。 +These CPAN testers are notified by mail of each new upload, and reply to the list with PASS, FAIL, NA (not applicable to this platform), or UNKNOWN (unknown), along with any relevant notations. (TBT) @@ -2060,8 +2059,7 @@ =end original -Also see: -(TBT) +また、以下も参照してください: =over 4 @@ -2073,8 +2071,7 @@ =end original -Mailing list: cpan-****@perl***** -(TBT) +メーリングリスト: cpan-****@perl***** =item * @@ -2084,8 +2081,7 @@ =end original -Testing results: http://testers.cpan.org/ -(TBT) +テスト結果: http://testers.cpan.org/ =back @@ -2104,13 +2100,12 @@ =end original -As of version 5.002, Perl is built with a C<$^O> variable that -indicates the operating system it was built on. This was implemented -to help speed up code that would otherwise have to C<use Config> -and use the value of C<$Config{osname}>. Of course, to get more -detailed information about the system, looking into C<%Config> is -certainly recommended. -(TBT) +バージョン 5.002 から、Perl は C<$^O> 変数がビルドされたオペレーティング +システムを示すような形でビルドされます。 +これは、C<use Config> して C<$Config{osname}> の値を調べる必要が +ないようにすることで高速化を助けています。 +もちろんシステムからもっと詳細な情報を得るなら、C<%Config> を +見ることが確実にお勧めです。 =begin original @@ -2121,11 +2116,11 @@ =end original -C<%Config> cannot always be trusted, however, because it was built -at compile time. If perl was built in one place, then transferred -elsewhere, some values may be wrong. The values may even have been -edited after the fact. -(TBT) +しかし、C<%Config> はコンパイル時にビルドされるので、常に +信頼するというわけにはいきません。 +perl がある場所でビルドされ、それから別の場所に移されると、いくつかの +値は間違ったものになるかもしれません。 +値は後から修正することすらできます。 =head2 Unix