雨谷の日和

過去20年で2,700を超えるアニメの第1話だけは見続けた僕のお勧めアニメがハズレなはずがない

プロファイラの重要性

kp氏が2004-04-03付の「補足」で、思うところを述べられている。
kp氏の意見を私なりに解釈するなら「大抵の言語は大抵のプログラムが要求する性能を実現できる。だから、言語の選択で実行性能を重視する場面はあまり多くない」ということになるでしょうか。(間違っていたら指摘下さい)
そういう観点を前提とすると、私の一連の比較はあまり意味の無いものに見えると思います。
自分なりに、kp氏の主張の主旨はだいたい理解出来たのではないかと勝手に思っています。


ついでなので、私の思いの方も主張してみます。
まずはkp氏も引用されている「百年の言語」から、私が現在行っていることの意味を示唆しているような箇所がありましたので引用します。

100年後には、プログラミング言語はいくつくらい存在するだろうか。最近になってすごい数のプログラミング言語が生まれてきた。理由のひとつは、ハードウェアが速くなったことで、プログラマが速度と利便性の間にアプリケーションに応じて異なったトレードオフを求められるようになったということだ。この流れが本物ならば、100年後のハードウェアはこの傾向を後押しするだけだろう。


だが、100年後でも、広く使われる言語は2〜3個ではないかと私には思われる。私の楽観性もあるのだが、もしうまくやれれば、遅いバージョン1を書くのにも、また適切なアドバイスをコンパイラに与えることによって必要なら非常に速いコードを生成するのにも、理想的な言語というのを作れるんじゃないかと思っているからだ。私は楽観的だから、まあまあの効率と最高の効率との解離が非常に大きくなるであろう時代でも、その多くの部分をカバーできる言語ができるだろうと予測する。


この解離が大きくなるにつれ、プロファイラーの重要性は増してゆく。現在、プロファイリングに関してはほとんど注意が払われていない。たくさんの人々が、速いアプリケーションを得る方法は速いコードを出すコンパイラを書くことだと、依然として信じている。まあまあの効率と最高の効率との解離が進むにつれ、前者から後者へと到る良いガイドを持つことが速いアプリケーションを得る方法だということがはっきりしてくるだろう。

私はこの部分の特に「プロファイラーの重要性」というところが、私の問題意識と近いのではないかと考えています。
要するに、現状を実測でもって把握することが重要だと考えています。
CとJavaの比較は、その実測を実際にやってみるとどうなるかを試しているだけとも言えます。