国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

每個Java程序員必須知道的5個JVM命令行標志

開發 后端
本文是Neward & Associates的總裁Ted Neward為developerworks獨家撰稿“你不知道5個……”系列中的一篇,JVM是多數開發人員視為理所當然的Java功能和性能背后的重負荷機器。然而,我們很少有人能理解JVM是如何進行工作的—像任務分配和垃圾收集、轉動線程、打開和關閉文件、中斷和/或JIT編譯Java字節碼,等等。

不熟悉JVM將不僅會影響應用程序性能,而且當JVM出問題時,嘗試修復也會很困難。

[[130025]]

本文將介紹一些命令行標志,您可以使用它們來診斷和調優您的Java虛擬機性能。

1.DisableExplicitGC

我已記不清有多少次用戶要求我就應用程序性能問題提供咨詢了,其實只要跨代碼快速運行grep,就會發現清單1所示的問題—原始Java性能反模式:

清單 1. System.gc;

// We just released a bunch of objects, so tell the stupid // garbage collector to collect them already! System.gc;

顯式垃圾收集是一個非常糟糕的主意——就像將您和一個瘋狂的斗牛犬鎖在一個電話亭里。盡管調用的語法是依賴實現的,但如果您的JVM正在運行一個分代的垃圾回收器(大多數是)System.gc;強迫VM執行一個堆的“全部清掃”,雖然有的沒有必要。全部清掃比一個常規GC操作要昂貴好幾個數量級,這只是個簡單數學問題。

您可以不把我的話放在心上—Sun的工程師為這個特殊的人工錯誤提供一個JVM標志;-XX:+DisableExplicitGC標志自動將System.gc調用轉換成一個空操作,為您提供運行代碼的機會,您自己看看System.gc對于整個JVM執行有害還是有利。

2.HeapDumpOnOutOfMemoryError

您有沒有經歷過這樣的情況:JVM不能使用,不斷拋出OutOfMemoryError,而您又不能為自己創建調試器來捕獲它或查看出現了什么問題?像這類偶發和/或不確定的問題,通常使開發人員發瘋。

買者自負

并不是任何VM都支持所有命令行標志,Sun/Oracle的VM除外。查明一個標志是否被支持的最好方法是試用它,看它是否正常工作。倘若這些標志在技術上是不支持的,那么,使用它們您要承擔全部責任。如果這些標志中的任何一個使您的代碼、您的數據、您的服務器或您的一切消失得無影無蹤,我、Sun/Oracle和IBM都將不負責任。為以防萬一,建議先在虛擬(非常生產)環境中實驗。

在這個時刻您想要的是,在JVM消亡之際捕獲堆的一個快照——正好-XX:+HeapDumpOnOutOfMemoryError命令可以完成這一操作。

運行該命令通知JVM拍攝一個“堆轉儲快照”,并將其保存在一個文件中以便處理,通常使用jhat實用工具(我在上一篇文章中介紹過)。您可以使用相應的-XX:HeapDumpPath標志指定到保存文件的實際路徑。(不管文件保存在哪,務必確保文件系統和/或Java流程必須要有權限配置,可以在其中寫入。)

3.bootclasspath

定期將一個類放入類路徑是很有幫助的,這類路徑與庫存JRE附帶的類路徑或者以某種方式擴展的JRE類路徑略有不同。(新Java Crypto API提供商就是一個例子)。如果您想要擴展JRE,那么您定制的實現必須可以使用引導程序ClassLoader,該引導程序可以加載rt.jar中的 java.lang.Object及其所有相關文件。

盡管您可以非法打開rt.jar并將您的定制實現或新數據包移入其中,但從技術上您就違反了您下載JDK時同意的協議了。

相反,使用JVM自己的-Xbootclasspath選項,以及皮膚-Xbootclasspath/p和-Xbootclasspath/a。

-Xbootclasspath使您可以設置完整的引導類路徑(這通常包括一個對rt.jar的引用),以及一些其他JDK附帶的(不是 rt.jar的一部分)JAR文件。-Xbootclasspath/p將值前置到現有bootclasspath中,并將 -Xbootclasspath/a附加到其中。

例如,如果您修改了庫中的java.lang.Integer,并將修改放在一個子路徑mods下,那么-Xbootclasspath/amods參數將新Integer放在默認的參數前面。

4.verbose

對于虛擬的或任何類型的Java應用程序,-verbose是一個很有用的一級診斷使用程序。該標志有三個子標志:gc、class和jni。

開發人員嘗試尋找是否 JVM 垃圾收集器發生故障或者導致性能低下,通常首先要做的就是執行 gc。不幸的是,解釋 gc 輸出很麻煩 — 足夠寫一本書。更糟糕的是,在命令行中打印的輸出在不同的 Java 版本中或者不在不同的 JVM 中會發生改變,這使得正確解釋變得更難。

一般來說,如果垃圾收集器是一個分代收集器(多數“企業級”VMs都是)。某種虛擬標志將會出現,來指出一個全部清掃GC通路;在Sun JVM中,標志在GC輸出行的開始以“[FullGC...]”形式出現。

想要診斷ClassLoader和/或不匹配的類沖突,class可以幫上大忙。它不僅報告類何時加載,還報告類從何處加載,包括到JAR的路徑(如果來自JAR)。

jni很少使用,除了使用JNI或本地庫時。打開時,它將報告各種JNI事件,比如,本地庫何時加載,方法何時彈回;再一次強調,在不同JVM版本中,輸出會發生變化。

5.Command-line-X

我列出了JVM中提供的我喜歡的命令行選項,但是還有一些更多的需要您自己發現,運行命令行參數-X,列出JVM提供的所有非標準(但大部分都是安全的)參數—例如:

-Xint,在解釋模式下運行JVM(對于測試JIT編譯器實際上是否對您的代碼起作用或者驗證是否JIT編譯器中有一個bug,這都很有用)。

-Xloggc:,和-verbose:gc做同樣的事,但是記錄一個文件而不輸出到命令行窗口。

JVM命令行選項時常發生變化,因此,定期查看是一個好主意。甚至,您深夜盯著監控器和下午5點回家和妻子孩子吃頓晚飯,(或者在Mass Effect 2中消滅您的敵人,根據您的喜好),它們都是不一樣的。

結束語

在生產環境中,命令行標志不是為永久使用而設計的——事實上,除了您終止用來調優JVM垃圾收集器的標志,沒有一個非標準命令行標記是專用于生產使用的。但是,作為工具來刺探在其他方面完全不透明的虛擬機的內部工作,是非常有用的。

責任編輯:王雪燕 來源: 碼農網
相關推薦

2013-06-26 09:01:22

JVMJava

2013-06-26 11:23:40

JVM命令行JavaJVM

2010-10-13 13:20:04

命令行標志JVM

2020-04-28 10:03:12

前端開發Mac

2023-11-01 08:01:48

數據結構軟件工程

2011-04-02 14:00:45

命令行JVMJava

2014-07-15 15:38:41

Android

2014-05-15 16:20:26

iOS程序員Android要點

2023-01-10 08:12:52

Java程序員負載均衡

2020-03-04 11:10:14

數據結構程序員編譯器

2020-04-02 15:37:58

數據結構存儲

2014-03-06 14:42:36

Linux命令行

2022-01-21 08:21:02

Web 安全前端程序員

2013-07-09 15:26:29

程序員算法

2013-12-16 09:36:49

程序員編程語言

2017-04-07 10:40:48

程序員學習命令行

2022-09-11 15:20:05

程序員命令開發

2012-10-11 10:32:48

Linux命令程序員

2018-07-02 10:15:11

Java程序員注解

2024-09-03 13:24:12

點贊
收藏

51CTO技術棧公眾號

日韩天堂av| 国产精品久久久久久久久免费桃花| 最近2019中文字幕mv免费看| 久久久久久久久久久久91| 亚洲作爱视频| 午夜美女久久久久爽久久| 最新超碰在线| 国产色产综合色产在线视频 | 99精品一区二区三区| 亚洲精品日韩av| 久久三级毛片| 日韩一区二区视频| 天堂中文av| 国产成人福利片| 精品不卡一区二区三区| 免费欧美视频| 成人羞羞在线观看网站| 国产精品成人一区二区| 日本天码aⅴ片在线电影网站| 综合久久国产九一剧情麻豆| 国产奶头好大揉着好爽视频| 天天做天天爱天天爽综合网| 欧美激情视频一区| 樱桃视频成人在线观看| 日韩欧亚中文在线| www.男人的天堂| 久久先锋影音av鲁色资源网| 性欧美精品一区二区三区在线播放| 99精品综合| 538国产精品视频一区二区| 国产成人精品亚洲日本在线观看| 欧美猛男gaygay网站| 最近中文字幕mv免费高清在线| 国产调教视频一区| 久青草视频在线播放| 三级精品在线观看| 极品尤物一区二区三区| 中文字幕一区二区av| 国产精品欧美亚洲777777| 久久wwww| 日韩亚洲一区二区| 成人线上视频| 亚洲精品天天看| 国产理论在线| 亚洲国产成人精品久久久国产成人一区| 国产精品视频一区二区久久| 亚洲成a人片综合在线| 羞羞的视频网站| 中文字幕一区二区三区在线不卡| 国产免费一区二区三区视频| www..com久久爱| 黄www在线观看| 久久久久久久久久久久久久久99| 欧美牲交a欧美牲交| www.欧美亚洲| 在线观看免费黄网站| 中文字幕不卡在线观看| 黄色在线视频网| 亚洲日本va午夜在线影院| 国产1区2区3区| 欧美日韩国产专区| lutube成人福利在线观看| 欧美日韩一区二区欧美激情| 免费观看在线黄色网| 亚洲成av人乱码色午夜| 香蕉成人影院| 91国偷自产一区二区三区的观看方式| 美女午夜精品| 91久久大香伊蕉在人线| 久久av一区二区三区| 超碰免费在线公开| 国产欧美一区二区精品性| 亚洲精品第一国产综合野草社区| 色噜噜狠狠色综合欧洲selulu| 中文字幕中文字幕在线十八区| 欧美精品一区二区在线观看| 日韩色性视频| 国产mv久久久| 国产一区二区三区久久久久久久久| 中文一区一区三区免费| 99精品黄色片免费大全| 少妇激情av一区二区三区| 欧美日本国产视频| 四虎视频在线精品免费网址| 国产精品一区专区欧美日韩| 免费人成黄页网站在线一区二区| 国产精品天天av精麻传媒| 一区二区三区91| 免费黄色网址在线观看| 综合国产在线观看| 欧美日韩一区二区综合 | 国产一区久久久| 成人3d动漫一区二区三区| 欧美日韩一区二区在线 | 日本aaa在线观看| 欧美zozo另类异族| 亚洲成人影音| 国产偷国产偷亚洲高清97cao| 成人精品视频一区二区三区| 中文天堂在线观看| 亚洲日本中文字幕| 日本a级不卡| 久久亚洲国产成人精品无码区| 亚洲欧美日韩综合aⅴ视频| 视频在线这里都是精品| 91高清视频免费| 精品一区二区免费视频| 国产超碰精品在线观看| 亚洲丝袜在线视频| 国产精品福利在线观看播放| 少妇精品久久久久久久久久| 亚洲一区自拍偷拍| 天堂√8在线中文| 97操在线视频| 国产欧美一区二区三区网站| 美女网站视频在线| 日本精品在线视频| av在线播放不卡| gogo在线高清视频| 国产欧美精品久久久| 26uuu久久天堂性欧美| 黄av在线免费观看| 国产免费一区视频观看免费| 成人ar影院免费观看视频| 日本在线观看网站| 国产精品免费一区豆花| 成人激情小说网站| 日韩激情美女| 国产富婆一区二区三区| 亚洲免费观看高清完整版在线观看 | 国产亚洲欧洲在线| 一本色道久久综合亚洲精品高清| 污网站在线观看免费| 在线观看中文字幕亚洲| 欧美午夜不卡影院在线观看完整版免费| 人妻内射一区二区在线视频| 精品亚洲永久免费精品| 在线视频精品| 国产一二在线观看| 国产精品成熟老女人| 久久久久久久精| 视频在线日韩| 亚洲精品一卡二卡三卡四卡| 欧美中文字幕一区二区三区 | 涩爱av色老久久精品偷偷鲁| 青青草原国产免费| 91麻豆精品国产91久久久使用方法 | 亚洲综合大片69999| 亚洲女性喷水在线观看一区| 亚洲福利影视| 一本大道东京热无码aⅴ| 精品国产乱码久久久久久浪潮 | 亚洲一区二区三区| h精品动漫在线观看| 57pao国产成人免费| 国产精品久久免费看| 日韩精品久久久久久久软件91| 在线观看三级网站| 亚洲男人天天操| 激情久久五月天| 免费亚洲电影| 特级西西444| 一区二区三区四区视频| 成人国产视频在线观看 | 午夜精品久久久久| 波多野结衣一区| 一级毛片免费在线| 国产精品你懂得| 欧美日韩精品在线播放| 最新国产精品| 色影院视频在线| 亚洲激情电影在线| 亚洲人成五月天| 久久久久久久性| 卡一精品卡二卡三网站乱码| 黄色av资源| 成人亲热视频网站| 欧美性大战久久久久久久蜜臀| 亚洲三级网站| 成人高潮aa毛片免费| 久久综合亚洲精品| 久久久久国产精品www| 亚洲精品成人精品456| 日韩黄色大片| 日本在线免费| 青青草免费在线视频观看| 色偷偷噜噜噜亚洲男人| 国产精品视频免费看| 97久久夜色精品国产| 9色在线视频网站| 国产欧美自拍视频| 国语对白做受69| 岛国av在线不卡| 可以看av的网站久久看| 91精品国产经典在线观看| www成人免费视频| 国新精品乱码一区二区三区18 | 高清国语自产在线观看| 99久久自偷自偷国产精品不卡| 日韩欧美一区二区三区在线|