10

JMH の新機能を Eclipse で Java アプリケーションとして実行して試してみたかったのです。jmh-samples プロジェクトをインポートしてビルドしました。コンパイルされたクラスは /jmh-samples/target/generated-sources/annotations で終了し、/target/ にはいくつかの JAR があり、コマンド ラインから microbenchmarks.jar を実行すると通常どおり動作します。

ただし、メインを実行すると、常に取得されます

No matching benchmarks. Miss-spelled regexp?

何か案は?バージョン0.3を使用しています

4

3 に答える 3

3

jmh-dev@は、これを開発者に伝えるためのより良い方法です。

試してみるいくつかのこと:

  1. ハイジャックMainはおそらく良い考えではありません。このサンプルのように、代わりに Java API を使用してください。
  2. パターン マッチングのデバッグに使用-v extraします。フィルターの正規表現が正しくないか、実行するベンチマークがありません。
  3. 正規表現が正しくない場合は、修正してください。
  4. 照合するベンチマークがない場合、リソースが適切に生成または取得されない可能性があります。target/classes/クラスパスでも利用できることを確認してください。
于 2014-01-29T08:18:07.033 に答える
3

さて、デフォルトでは、jmh は META-INF/Microbenchmarks の下で生成されたクラスを探し、maven ビルドがプロジェクトのルートの下に置くように見えます。ただし、Eclipse プロジェクトのルートはクラスパス上にないため、IDE で実行すると「ベンチマークが見つかりません」という結果になります。

次の方法で実行しました:

  1. mvn クリーン パッケージ (Eclipse に埋め込まれていない外部 Maven インストールを使用)
  2. jmh-samples プロジェクトを右クリックし、[ビルド パス -> ソース フォルダーとして使用] を選択します。
  3. jmh-samples のベンチマークを Eclipse で Java アプリケーションとして実行できるようになりました

欠点としては、Eclipse が自動生成されたファイルと混同されるため、Problems ビューに 1000 以上の「エラー」が表示されますが、まあ、少なくとも機能します。

于 2014-02-11T03:30:00.637 に答える