日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用VisualVM分析MyEclipse

發(fā)布時(shí)間:2024/9/20 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用VisualVM分析MyEclipse 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

MyEclipse包含了Sun公司的VisualVM分析器的高級(jí)集成。剖析可以為您收集有關(guān)應(yīng)用程序的數(shù)據(jù),因?yàn)樗鼈冞\(yùn)行并監(jiān)測數(shù)據(jù)的統(tǒng)計(jì)。

  • 剖析一個(gè)獨(dú)立的Java應(yīng)用程序
  • 剖析一個(gè)Web應(yīng)用程序
  • 剖析一個(gè)Java小程序

持續(xù)時(shí)間:20分鐘

沒有MyEclipse?立即下載

1. 確保分析器安裝

VisualVM被包含在MyEclipse當(dāng)中,但其卻未必是您基礎(chǔ)安裝配置的一部分。如果沒有安裝,您可以很容易地添加組件。

(1)選擇Help>Choose Components。

(2)在Selected中,在過濾字段中輸入VM找到MyEclipse VisualVM的分析器組件。

檢查VisualVM的Profiler軟件

(3)如果未安裝VisualVM,從左側(cè)選擇它并將其移動(dòng)到右側(cè)添加的組件中。為了可靠地分析,您的應(yīng)用程序必須在JRE 1.6.0更新的7或者更高的版本中執(zhí)行。

2. 剖析一個(gè)獨(dú)立的Java應(yīng)用程序

(1)選擇MyEclipse>Examples On-Demand來下載示例項(xiàng)目的分析。

(2)點(diǎn)擊搜索,然后搜索swing。

(3)點(diǎn)擊Swing Contact Manager安裝按鈕示例來將其安裝到您的工作區(qū)中。

安裝示例應(yīng)用程序
2.1 性能分析

(1)右鍵單擊M4M Contact Manager示例項(xiàng)目,并選擇Profile As>Java Application。這將啟動(dòng)性能分析模式的剖析。

啟動(dòng)性能分析模式

(2)選擇Main – com.myeclipseide.examples.m4m作為主類,然后單擊確定,并選擇性能分析模式,然后點(diǎn)擊確定繼續(xù)。

(3)在contact manager應(yīng)用程序中選擇一些新的名稱來觀察分析,此信息會(huì)被收集到VisualVM窗口。

當(dāng)名稱被選中收集配置文件信息

(4)在列表中選擇一個(gè)名稱,然后單擊刪除會(huì)看到removeButtonActionPerformed方法被添加到列表中,以1為它的調(diào)用計(jì)數(shù),每次單擊刪除后此計(jì)數(shù)都將增加。

結(jié)果用刪除按鈕

(5)點(diǎn)擊保存此時(shí)收集到的結(jié)果快照。使用過濾器來只顯示您要查看的信息,您可以將其保存為以后要研究的文件。

過濾快照信息

(6)關(guān)閉應(yīng)用程序和VisualVM的窗口。

要在此運(yùn)行分析會(huì)話,可以重復(fù)步驟1或者點(diǎn)擊分析圖標(biāo)的下拉箭頭。選擇您要查看的剖析配置,如果先前所分析的應(yīng)用程序仍在運(yùn)行,在您啟動(dòng)另一個(gè)分析會(huì)話之前系統(tǒng)會(huì)提示將其關(guān)閉。

從工具欄中運(yùn)行配置文件
2.2 自定義性能分析

(1)右鍵單擊該項(xiàng)目,并選擇Profile As>Profile Configurations,或者點(diǎn)擊文件圖標(biāo)的下拉菜單,并選擇Profile Configurations。

打開配置文件配置

(2)在Java應(yīng)用程序節(jié)點(diǎn)下,從走遍的列表中選擇應(yīng)用程序。

(3)選擇配置文件選項(xiàng),然后在性能選項(xiàng)中更改分析器設(shè)置。

性能分析器設(shè)置

配置文件

  • 此字段指定根方法分析器使用您應(yīng)用程序的儀表,只有根方法和在應(yīng)用程序其余部分繼續(xù)運(yùn)行的方法被稱為儀表。
  • 使用添加按鈕來指定一個(gè)方法、類或包。如果指定一個(gè)類,那么類的所有方法都會(huì)成為儀表的根。如果指定了一個(gè)包,那么包中所包含的所有類方法會(huì)成為儀表的根(根據(jù)您在根分析向?qū)е械倪x擇,這就意味著只有被選中的包或子包)。
  • 默認(rèn)情況下,MyEclipse規(guī)定根包括項(xiàng)目中的所有包。

只/不要配置文件下面的類

  • 該分組過濾器控制這些包被(或者不)分析。除了根方法本身以外,如果方法滿足此處的定義,那么分析數(shù)據(jù)值被收集和顯示。
  • 默認(rèn)情況下,MyEclipse為一個(gè)只包含在項(xiàng)目中的包指定一個(gè)過濾器,您可以在Lazy、Eager和Total儀表之間進(jìn)行選擇。

儀表方案

  • Lazy(MyEclipse默認(rèn)值):由于它的低開銷,所以它是長時(shí)間運(yùn)行儀表的最佳方案。當(dāng)使用這個(gè)方案時(shí),首先檢測的就是根的方法。當(dāng)?shù)谝淮螆?zhí)行根方法時(shí),所有的方法調(diào)用都會(huì)被檢測。
  • Total:在這個(gè)方案中,當(dāng)加載類時(shí)這個(gè)類中的所有方法都要檢測。對(duì)于長期運(yùn)行的應(yīng)用程序來說,由于它的高分析開銷,因此它并不是一個(gè)好的方案。然而對(duì)于那些短暫工作的應(yīng)用程序來說,在分析啟動(dòng)應(yīng)用程序時(shí)它是有用的。
  • Eager:在這個(gè)方案中,每當(dāng)一個(gè)類被加載時(shí),分析器都將通過根方法直接或間接的定位儀表。因此儀表的方法數(shù)量比Lazy方案高得多,但是比Total更低。

分析啟動(dòng)時(shí)的基本框架

  • 如果應(yīng)用程序的JVM啟動(dòng)也選擇profiled.During性能分析的方法,在性能分析的跟蹤方法中,進(jìn)入和退出呼叫的方法會(huì)插入到各儀表的方法中。根據(jù)所使用的跟蹤技術(shù),這些呼叫可能會(huì)需要時(shí)間戳。

方法跟蹤

  • 精確:有了精確的跟蹤,在每個(gè)方法被調(diào)用的時(shí)間中進(jìn)入和退出呼叫采用時(shí)間戳。這將會(huì)給你準(zhǔn)確的執(zhí)行方法的時(shí)間讀數(shù)(進(jìn)入和退出相應(yīng)通話的時(shí)間),但由于大量調(diào)用OS高精度計(jì)時(shí)器會(huì)增加分析的開銷。
  • 采樣:時(shí)間戳采用的只是方法進(jìn)入和退出呼叫時(shí)指定的采樣發(fā)生在interva的末端。其方法調(diào)用仍計(jì)算準(zhǔn)確,這個(gè)選項(xiàng)就大大降低了分析的開銷,但其結(jié)果的準(zhǔn)確性可能比那些使用精度技術(shù)的更低一些。

儀表方法調(diào)用()

  • 如果啟用,所有的呼叫都使用反射(java.lang.reflect.Method.invoke())的跟蹤和儀表。

儀表getter / setter方法

  • 啟用getter和setter方法的儀表。

儀表的空方法

  • 啟用不包含可執(zhí)行代碼的方法儀表。

分析新的threads / runnables

  • 如果啟用,每次可運(yùn)行的run()方法來視為根方法,也將導(dǎo)致調(diào)用一切方法來進(jìn)行檢測。

排除時(shí)間花費(fèi)在Thread.sleep()和Object.wait()上

  • 如果選擇了,這些方法都不會(huì)被分析。

分析線程數(shù)限制

  • 分析數(shù)據(jù)只從注冊(cè)線程時(shí)收集。當(dāng)未注冊(cè)的線程進(jìn)入儀表代碼時(shí),它就被注冊(cè)了。當(dāng)注冊(cè)的線程的數(shù)目達(dá)到指定的限制,進(jìn)一步停止登記。該計(jì)數(shù)器可以在分析器復(fù)位時(shí)重置收集的結(jié)果。
2.3 內(nèi)存性能分析

(1)右鍵單擊該項(xiàng)目,選擇Profile As>Profile Configurations,并從列表左側(cè)的Java應(yīng)用程序節(jié)點(diǎn)下選擇您的項(xiàng)目。

(2)選擇配置文件選項(xiàng),然后選擇內(nèi)存選項(xiàng)。

內(nèi)存配置文件設(shè)置

(3)自定義設(shè)置,然后單擊配置文件來啟動(dòng)內(nèi)存分析。

僅記錄對(duì)象創(chuàng)建

  • 選中后,分析器收集有關(guān)的數(shù)量、類型和分配對(duì)象的位置信息。目前由目標(biāo)JVM(和它加載的每個(gè)新類)來加載所有類儀表。

記錄對(duì)象創(chuàng)建和垃圾收集

  • 如果選擇此選項(xiàng),除了上述選項(xiàng)提供的數(shù)據(jù),你也給有關(guān)對(duì)象生動(dòng)活潑的信息,即有多少給定類型的對(duì)象仍然存在。分析垃圾收集除了創(chuàng)建對(duì)象還增加了分析開銷。

跟蹤每一個(gè)X分配

  • 盡管特定類別的分配對(duì)象的數(shù)量會(huì)被準(zhǔn)確地跟蹤,但完整的分析數(shù)據(jù)是單獨(dú)進(jìn)行跟蹤的,并且并且只收集每一個(gè)X(即類)個(gè)對(duì)象的分配。記錄有關(guān)每一個(gè)分配信息,該圖可以被設(shè)置為1,盡管這會(huì)顯著的增加分析開銷。默認(rèn)情況下,MyEclipse跟蹤每10個(gè)對(duì)象分配。

分配記錄的堆棧跟蹤

  • 如果啟用,當(dāng)對(duì)象創(chuàng)建被記錄時(shí),此時(shí)的調(diào)用堆棧也會(huì)被記錄。默認(rèn)情況下,整個(gè)調(diào)用堆棧都會(huì)被記錄,但限制堆棧深度與X幀選項(xiàng)可以用于限制幀的數(shù)目,并減少分析開銷。
顯示對(duì)象分配痕跡的內(nèi)存快照

3. 分析一個(gè)Web應(yīng)用程序

(1)右鍵單擊Web項(xiàng)目,并選擇Profile As>MyEclipse Server Application。

啟動(dòng)web應(yīng)用分析

(2)自定義設(shè)置按照第2節(jié)中的說明。分析配置您的Web應(yīng)用程序是在MyEclipse服務(wù)器應(yīng)用節(jié)點(diǎn)配置文件中的配置窗口下。

Web應(yīng)用程序的配置文件設(shè)置

4. 分析一個(gè)Java小程序

(1)右鍵單擊小程序的項(xiàng)目,并選擇Profile As>Java Applet。

啟動(dòng)Java小程序分析

(2)自定義設(shè)置按照第2節(jié)中的說明。分析配置您的Java小程序是在Java Applet配置文件中的配置窗口下。

對(duì)Java小程序的配置文件設(shè)置

5. 其他的VisualVM功能

在VisualVM的監(jiān)視器選項(xiàng)中包含應(yīng)用程序的當(dāng)前狀態(tài)、CPU和內(nèi)存的使用情況概述。

顯示器選項(xiàng)

線程選項(xiàng)包含了您的應(yīng)用程序的線程列表。

Threads選項(xiàng)

以及您可以深入到獲得特定線程的詳細(xì)信息。

Threads選項(xiàng)詳細(xì)信息

點(diǎn)擊應(yīng)用程序按鈕,右鍵單擊您的應(yīng)用程序并選擇Thread或堆轉(zhuǎn)儲(chǔ)。

轉(zhuǎn)儲(chǔ)申請(qǐng) 線程轉(zhuǎn)儲(chǔ) 堆轉(zhuǎn)儲(chǔ)

MyEclipse官方中文網(wǎng)上線,歡迎下載交流!

轉(zhuǎn)載于:https://my.oschina.net/u/2317468/blog/399376

總結(jié)

以上是生活随笔為你收集整理的用VisualVM分析MyEclipse的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。