Intellij IDEA整合JProfiler效能分析神器
環境
- JProfiler 17.1.3(IDEA外掛)
- JProfiler 9.2(可執行軟體)
- IntelliJ IDEA 2017.2.5
下載
下載JProfiler(IDEA)外掛
方式1:
在IDEA上直接下載Settings–plugins–Browse repositories
搜尋JProfiler 點選 install 按鈕安裝,然後從啟IDEA工具
看到如下圖片則說明安裝完成
方式2:
官網下載外掛,手動安裝
在首頁向下翻,中部位置能看到JProfiler最新版本,包括歷史版本下載連結,本教程中我們選擇17.1.3版本。點選DOWNLOAD進行下載。
把從下載的壓縮包解壓出來的JProfiler資料夾,copy到IDEA自定義外掛目錄,預設路徑:C:\Users\Administrator.IntelliJIdea2017.2\config\plugins
從啟IDEA看到如下圖示則安裝成功:
安裝
安裝JProfiler監控軟體
官方下載地址
右上角可以選擇要下載版本
注: 本教程選擇的版本是9.2
下載完雙擊執行,選擇自定義目錄安裝,點選Next
選擇安裝路徑,建議選擇一個檔名中沒有中文,沒有空格的路徑因為如果改手動啟動時,空格識別不了。然後一直點Next
配置
配置IDEA執行環境
Settings–Tools–JProflier–JProflier executable選擇JProfile安裝可執行檔案。(如果系統只裝了一個版本,啟動IDEA時會預設選擇)儲存
選擇你要分析的專案,點選JProfiler圖示啟動。
啟動完成會自動彈出JProfiler視窗,在裡面就可以監控自己的程式碼效能了。
至此IDEA中配置JProfiler做效能分析就完成了!
擴充套件
配置JRebel和JProfiler同時執行
有些人在IDEA中配置了JRebel熱部署,要想JRebel和JProfiler同時執行,就要改手動管理JProfiler session了。
方式1:
通過點選tomcat的啟動指令碼啟動
在要分析的tomcat啟動指令碼catalina.bat中增加一行。
set CATALINA_OPTS=-agentpath:D:\service\jprofiler9\bin\windows-x64\jprofilerti.dll=port=8849,nowait,id=80,config=C:\Users\Administrator\.jprofiler9\config.xml %CATALINA_OPTS%
方式2:
通過Idea JRebel 啟動
在IDEA Run/Debug Configurations視窗JRebel Debug中配置Environment Variables屬性。
CATALINA_OPTS=-agentpath:D:\service\jprofiler9\bin\windows-x64\jprofilerti.dll\=port\=8849,nowait,id\=81,config\=C:\Users\Administrator\.jprofiler9\config.xml
啟動JRebel
看到控制檯如下資訊,說明JRebel和JProfiler都啟動了。
JProfiler> Protocol version 55
JProfiler> Using JVMTI
JProfiler> JVMTI version 1.1 detected.
JProfiler> Don't wait for frontend to connect.
JProfiler> 64-bit library
JProfiler> Using config file C:\Users\Administrator\.jprofiler9\config.xml (id: 80)
JProfiler> Listening on port: 8849.
JProfiler> Instrumenting native methods.
JProfiler> Can retransform classes.
JProfiler> Can retransform any class.
JProfiler> Native library initialized
2018-02-05 17:55:02 JRebel:
2018-02-05 17:55:02 JRebel: A newer version '7.1.5' is available for download
2018-02-05 17:55:02 JRebel: from http://zeroturnaround.com/software/jrebel/download/
2018-02-05 17:55:02 JRebel:
Connected to the target VM, address: '127.0.0.1:61805', transport: 'socket'
JProfiler> VM initialized
2018-02-05 17:55:02 JRebel: Contacting myJRebel server ..
JProfiler> Using dynamic instrumentation
JProfiler> Time measurement: elapsed time
JProfiler> CPU profiling enabled
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Server version: Apache Tomcat/7.0.64
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Server built: Aug 19 2015 17:18:06 UTC
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Server number: 7.0.64.0
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: OS Name: Windows 7
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: OS Version: 6.1
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Architecture: amd64
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Java Home: D:\service\Java\jdk1.8.0_101\jre
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: JVM Version: 1.8.0_101-b13
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: JVM Vendor: Oracle Corporation
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: CATALINA_BASE: C:\Users\Administrator\.IntelliJIdea2017.2\system\tomcat\Unnamed_Service-ALL_7
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: CATALINA_HOME: D:\service\tomcat\Service-tomcat-7.0.64
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -Drebel.base=C:\Users\Administrator\.jrebel
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -Drebel.env.ide.plugin.version=7.1.4
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -Drebel.env.ide.version=2017.2.5
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -Drebel.env.ide.product=IU
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -Drebel.env.ide=intellij
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -Drebel.notification.url=http://localhost:17434
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -agentpath:C:\Users\Administrator\.IntelliJIdea2017.2\config\plugins\jr-ide-idea\lib\jrebel6\lib\jrebel64.dll
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:61805,suspend=y,server=n
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -Dfile.encoding=UTF-8
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -Dcom.sun.management.jmxremote=
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -Dcom.sun.management.jmxremote.port=1099
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -Dcom.sun.management.jmxremote.ssl=false
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -Dcom.sun.management.jmxremote.authenticate=false
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -Djava.rmi.server.hostname=127.0.0.1
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -Djava.util.logging.config.file=C:\Users\Administrator\.IntelliJIdea2017.2\system\tomcat\Unnamed_Service-ALL_7\conf\logging.properties
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -agentpath:D:\service\jprofiler9\bin\windows-x64\jprofilerti.dll=port=8849,nowait,id=80,config=C:\Users\Administrator\.jprofiler9\config.xml
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -Djava.endorsed.dirs=D:\service\tomcat\Service-tomcat-7.0.64\endorsed
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -Dcatalina.base=C:\Users\Administrator\.IntelliJIdea2017.2\system\tomcat\Unnamed_Service-ALL_7
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -Dcatalina.home=D:\service\tomcat\Service-tomcat-7.0.64
二月 05, 2018 5:55:04 下午 org.apache.catalina.startup.VersionLoggerListener log
資訊: Command line argument: -Djava.io.tmpdir=D:\service\tomcat\Service-tomcat-7.0.64\temp
二月 05, 2018 5:55:04 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
資訊: Loaded APR based Apache Tomcat Native library 1.1.33 using APR version 1.5.1.
二月 05, 2018 5:55:04 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
資訊: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
2018-02-05 17:55:06 JRebel: Starting logging to file: C:\Users\Administrator\.jrebel\jrebel.log
2018-02-05 17:55:06 JRebel:
2018-02-05 17:55:06 JRebel: #############################################################
2018-02-05 17:55:06 JRebel:
2018-02-05 17:55:06 JRebel: JRebel Agent 7.1.4 (201712200830)
2018-02-05 17:55:06 JRebel: (c) Copyright ZeroTurnaround AS, Estonia, Tartu.
2018-02-05 17:55:06 JRebel:
2018-02-05 17:55:06 JRebel: Over the last 16 days JRebel prevented
2018-02-05 17:55:06 JRebel: at least 117 redeploys/restarts saving you about 0 hours.
2018-02-05 17:55:06 JRebel:
2018-02-05 17:55:06 JRebel: Licensed to wenyuan hou (using myJRebel).
2018-02-05 17:55:06 JRebel:
2018-02-05 17:55:06 JRebel:
2018-02-05 17:55:06 JRebel: #############################################################
2018-02-05 17:55:06 JRebel:
點選jprofiler.exe
執行選單Session–Integr ation Wizards–New Server Integration
選擇tomcat容器版本(7.X)
選擇是本地測試還是遠端測試(本處選本地)
選擇虛擬機器的型別
選擇Web容器是否和Jprofiler一起執行(我們使用JRebel啟動,所以選擇第二個)
選擇tomcat啟動指令碼
選擇埠號預設就行
然後一直Next,最後成功。
完成!