私が書いた特定の書き換えシステムに対するRascalのパフォーマンスを評価したいと思います。それをする良い方法があるのだろうか?ラスカルのパフォーマンスを評価していますか?
理想的には、コンパイル済みのJavaクラスをシステムから生成し、自分の入力に対して手動で実行します。それを行うための簡単な方法や推奨される方法はありますか?
乾杯、これを行うには
私が書いた特定の書き換えシステムに対するRascalのパフォーマンスを評価したいと思います。それをする良い方法があるのだろうか?ラスカルのパフォーマンスを評価していますか?
理想的には、コンパイル済みのJavaクラスをシステムから生成し、自分の入力に対して手動で実行します。それを行うための簡単な方法や推奨される方法はありますか?
乾杯、これを行うには
一つの方法は、ライブラリutil::Benchmark
の関数を使用することです。通常、 cpuType((){ call_the_function_I_want_to_observe(); })
のようなものを書くことができます。これはあなたの関数を実行し、使用されたCPU時間を表示します。
ラスカルは、パフォーマンスを測定するときに大きな違いをもたらす解釈とコンパイルという2つの方法で実行できます。 Eclipse IDEにコンパイラを完全に統合するために、現時点で懸命に取り組んでいますが、スタンドアロン版も用意されています。これはjava -Xss8m -jar rascal-0.8.4-SNAPSHOT.jar --compiledREPL
と呼ばれ、少なくともソースのディレクトリ(--src
)とバイナリ(--bin
)の値が続きます。ここでrascal-0.8.4-SNAPSHOT.jar
(ただし、別の名前が付けられている可能性が高い)はhttps://update.rascal-mpl.org/console/rascal-shell-unstable.jarからダウンロードされます。
さらに詳しい情報が必要な場合は、お気軽に詳細をお尋ねください。ツールチェーンのこの部分は残念ながらまだ文書化されていません。
--compliledREPLが面白いと思う。私はあなたがこれを使用することをお勧めしていると思うし、私のrscファイルの最後に、cpuType()への1回以上の呼び出しが含まれています。したがって、書き換えルール自体の読み込み/解析/構築に必要な時間は含まれません。 – redjamjar
修正。特にJVMベースのシステムでは、常に考慮すべき多くの側面があります。 JVM自体のロード時間、実行するプログラムのロード時間、ジッタのウォームアップ効果などが含まれます。 –