2017-03-27 41 views
1

我正在嘗試運行JProfiler for grails應用程序。我真的很感謝以下任何建議: 1)由於我沒有在grails應用程序中使用main()方法的顯式類,所以我假設附加到正在運行的JVM是我唯一的選擇。真的嗎?有沒有辦法在grails應用程序啓動之前附加JProfiler? 2)附加到正在運行的JVM後,JProfiler需要什麼來配置controller/service/src/domain文件。我必須執行測試用例嗎?在我的情況下,他們是休息控制器,所以我必須運行所有可能場景的請求? 3)如果沒有我運行測試用例,是否有可能讓Jprofiler配置文件代碼,因爲我可能無法覆蓋所有場景?在IntelliJ上運行JProfiler for grails

回答

0

因爲我沒有在Grails應用程序與main()方法的顯式類

一個JVM探查器不依賴於由你自己寫的一個主要方法。您必須能夠做的唯一事情是將-agentpath VM參數傳遞給JVM。確切參數由JProfiler中的Session->Integration wizard->New Remote Integration給出,並且必須將其添加到Grails> = 3.1.5的環境變量GRAILS_FORK_OPTS

Intellij IDEA集成可以直接配置Grails運行配置,因此您不必執行上述操作。

使用附加API也是可能的,但在連接時具有較高的開銷並且阻止啓用一些分析功能。

我必須執行所有可能發生的情況

Profiler將會對整個JVM的要求,所以不管用的情況下運行,而分析將在探查顯示出來。

+0

非常感謝您對Ingo的迴應。 「Intellij IDEA集成可以直接對Grails運行配置進行配置,因此您不必執行上述操作。」我怎麼能這樣做,以便我可以配置應用程序啓動? –

+0

在IDEA中安裝JProfiler插件,選擇grails運行配置,然後單擊工具欄中的配置文件按鈕。在JProfiler的會話啓動對話框中,選擇一個包含CPU分析的記錄配置文件。然後它會描述應用程序服務器的整個啓動。 –

+0

單擊工具欄上的配置文件按鈕時出現以下錯誤:加載程序約束違規:解析方法「kotlin.reflect.KClasses.getMemberProperties(Lkotlin/reflect/KClass;)Ljava/util/Collection;」時出現以下錯誤: (com/intellij/ide/plugins/cl/PluginClassLoader的實例),com/jprofiler/integrations/idea/runner/f和類加載器UrlClassLoader)對於方法的定義類kotlin/reflect/KClasses,具有用於簽名中使用的類型kotlin/reflect/KClass的不同Class對象 –