2010-12-10 10 views
0

asmのjavaバイトコード計測を使用して、特定のバイトコード(クラスファイル、元のコードで主な機能を持つ)ランタイムを測定する方法があるのだろうかと思っていました。asm Instrumantationを使用してJavaプログラムランタイムを測定する

対策は可能な限り正確で、可能な場合はナノ秒単位で行う必要があります。

おかげ

+0

あなたはそれが何のために必要なのでしょうか? – khachik

+0

さて、私は、特定のバイトコードを取得し、その上でいくつかの分析を行うプロジェクトに取り組んでいます。主な目標は、時間の経過とともにオブジェクトへのアクセスをトレースし、ヒートマップ上でそれを表現することです。 nanotimeを求めている理由は、ヒートマップ上ではるかによく見えるので、解像度は良くなり、プログラムのいくつかの「段階」を見極めることができます。 – RanZilber

答えて

1

は、System.nanoTimeの()などを追加することが測定されたコードのセクションに300ナノ秒以上が追加されますので注意して。

ASMでも可能ですが、あなたが望む結果は得られません。

このメソッドのパフォーマンステストを試したことがありますか?すなわち平均呼時間が何であったかを見るために2秒間呼出す。これは、あなたがそれを十分に長く呼んでも、ナノ秒に正確で安定です。

+0

まあ、私は入力に任意の境界を持っていないので。どのプログラムでも、1時間実行するプログラムであってもかまいません。私は1回の実行でその時間を取得したい。私は、乞食の時に、そして最後に、時間を測定するコードの初めのラインをインテリジェントにしたいと思います。出来ますか? – RanZilber

+0

それはプロファイルがかなりうまくいくようなものだと思います。最初にアプリケーションのプロファイリングを試しましたか? –

+0

プロファイリングとはどういう意味ですか? – RanZilber

関連する問題