アカウント名:
パスワード:
現在のサーバサイド Java の場合、最適化は確率と統計の世界に入ります。
JIT コンパイル自体が実行時間の一部になってしまうので、JIT 範囲を絞り込むためにプロファイリングを行い、HotSpot と判断した部分のみコンパイルします。
なので、同じコードでも、プログラム中での実行頻度によって実行速度が変わる -それも実行の途中から- のです。
こうなるとネイティブ環境での常識が通用しません。マイクロベンチマークを回すと極度に最適化されて良すぎる結果が出るとか。
ルールで最適化の正否を判断できないので、システムの組みように困るというか、悪いと思える場所でも影響がどのくらい有るのか分かりにくいというか。
参照: 日本HP - HP-UX Developer Edge - メモリ・リーク解析とHotSpot JVM [hp.com] (日本HPのサイトですしメモリリークを解説する記事の一部ですが、これが一番端的な解説をしていると思います)
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stableって古いって意味だっけ? -- Debian初級
言語と目的によるだろ (スコア:3, すばらしい洞察)
もしかしてJavaとかPerlとかPHPとかでのコーディングははプログラミングじゃねぇ!とかいいたいんじゃ・・・とか思って元記事を見たらそうではないみたいですが。
# 学生時代に実習でマイコンのプログラミングをしたとき、「サブルーチンをアセンブラで書いてもいいですか」と教官に聞いたら「そんな無駄なことする必要はない」とか言われたことをふと思い出した
Re:言語と目的によるだろ (スコア:0)
Re:言語と目的によるだろ (スコア:2, 興味深い)
無いのですよ。下手にバイトコードレベルでいじって最適化(と思い込んでいる行為)を
やるとかえって遅くなる危険性が高いですよ。
Re:言語と目的によるだろ (スコア:4, 参考になる)
現在のサーバサイド Java の場合、最適化は確率と統計の世界に入ります。
JIT コンパイル自体が実行時間の一部になってしまうので、JIT 範囲を絞り込むためにプロファイリングを行い、HotSpot と判断した部分のみコンパイルします。
なので、同じコードでも、プログラム中での実行頻度によって実行速度が変わる -それも実行の途中から- のです。
こうなるとネイティブ環境での常識が通用しません。マイクロベンチマークを回すと極度に最適化されて良すぎる結果が出るとか。
ルールで最適化の正否を判断できないので、システムの組みように困るというか、悪いと思える場所でも影響がどのくらい有るのか分かりにくいというか。
参照: 日本HP - HP-UX Developer Edge - メモリ・リーク解析とHotSpot JVM [hp.com] (日本HPのサイトですしメモリリークを解説する記事の一部ですが、これが一番端的な解説をしていると思います)