2017-03-27 7 views
1

grailsアプリケーション用にJProfilerを実行しようとしています。 1)Grailsアプリケーションでmain()メソッドを使用した明示的なクラスがないため、実行中のJVMへのアタッチは私の唯一のオプションです。本当? grailsアプリケーションを起動する前にJProfilerを接続する方法はありますか? 2)実行中のJVMに接続した後、JProfilerはコントローラ/サービス/ src /ドメインファイルをプロファイルするために何をinorderする必要がありますか?テストケースを実行する必要がありますか?私の場合、彼らは残りのコントローラなので、すべての可能なシナリオの要求を実行する必要がありますか? 3)私はすべてのシナリオをカバーすることができない可能性があるので、テストケースを実行していないコードをJprofilerプロファイルに持たせることは可能ですか?IntelliJでgrails用JProfilerを実行する

答えて

0

私はJVMプロファイラは、自分で書かれている主な方法に依存しないのGrailsアプリケーション

で、main()メソッドで明示的なクラスを持っていないので。できることは、-agentpath VMパラメータをJVMに渡すことだけです。正確なパラメータはJProfilerのSession->Integration wizard->New Remote Integrationで与えられ、Grails> = 3.1.5の場合は環境変数GRAILS_FORK_OPTSに追加する必要があります。

インテリジェントIDEAインテグレーションは、Grailsが直接コンフィギュレーションを実行するようにプロファイルすることができますので、上記を行う必要はありません。

attach APIを使用することもできますが、接続時にオーバーヘッドが高くなり、プロファイリング機能を有効にできなくなります。

私は、プロファイラは全体のJVMをプロファイルするので、プロファイリングは、プロファイラに表示されますしながら、どのような利用の場合、あなたが実行するすべての可能なシナリオ

の要求を実行する必要があります。

+0

ご回答いただきありがとうございます。 「Intellij IDEAとの統合により、Grailsが直接コンフィギュレーションを実行できるようになるので、上記を行う必要はありません」アプリケーションの起動をプロファイルできるようにするにはどうすればよいでしょうか? –

+0

IDEAにJProfilerプラグインをインストールするgrails run configurationを選択し、ツールバーのプロファイルボタンをクリックします。 JProfilerのセッション起動ダイアログで、CPUプロファイリングを含む録画プロファイルを選択します。その後、アプリケーションサーバーの起動全体をプロファイルします。 –

+0

ローダーの制約違反:メソッド "kotlin.reflect.KClasses.getMemberProperties(Lkotlin/reflect/KClass;)を解決するときに、ツールバーの[プロファイル]ボタンをクリックしたときに次のエラーが発生します:Ljava/util/Collection;"現在のクラスcom/jprofiler/integration/idea/runner/fのクラスローダ(com/intellij/ide/plugins/cl/PluginClassLoaderのインスタンス)とクラスローダ(com/intellij/util/lang /メソッドの定義クラスkotlin/reflect/KClassesのために、署名に使用されるkotlin/reflect/KClassタイプの異なるClassオブジェクトを持っています –

関連する問題