1

私は、JVM での Clojure と Scala のパフォーマンスに頭を悩ませています。暗号化された機能コードを理解する最善の方法を考えています。バイトコードを理解する方法を学ぶべきですか、それともプロファイラーを使用してパフォーマンスを推測するべきですか? 経験のある人は、このためのツールをお勧めしますか? JD ( http://java.decompiler.free.fr ) が最良の逆コンパイラであることは理解しています。これは私が下るべきルートですか?

4

1 に答える 1

2

逆コンパイラは、実行中のコードのパフォーマンスについてほとんど教えてくれません。バイトコードを読むことは、動作を理解するのにたまにしか役に立たず、より動的な特性の場合はさらに役に立ちません。これにはいくつかの理由があります。1 つ目は、静的分析に基づいてパフォーマンス チューニングを行うことは賢明ではなく、通常はあからさまなハウラーのみをキャッチし、時期尚早の最適化につながる可能性があることです。2 つ目は、VM で実行されるものがバイトコードと同一ではないことです。Just In Time コンパイラは、短いメソッドを傾けるなど、多くの最適化を行います。

アプリが何を行っているかを確認するには、パフォーマンスに関して、プロファイラーが本当に必要です。ヒープの使用量とガベージ コレクションにかかる時間を把握し、サンプリング プロファイラーを使用して、どのコードに時間がかかっているかを確認します。IBM の Health Center は良いものです。または、Visual VM などを試すこともできます。

于 2013-02-08T08:18:34.583 に答える