国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

OM引起你的注意了嗎?

loonggg / 2478人閱讀

摘要:引曾幾何時這句話總是在你的程序中出現,新手到是什么問題后就去改了內存大小還總是分不清楚,想的是總之設大點我就看不到這個錯誤了。稍微有點經驗的會翻翻看看什么地方會出現內存泄露,當然也會改參數,但會有節制的改了。

曾幾何時java.lang.OutOfMemoryError: Java heap space這句話總是在你的程序中出現,新手search到是什么問題后就去改了內存大小還總是分不清楚Xms Xmx PermSize MaxNewSize,想的是“總之設大點我就看不到這個錯誤了”。稍微有點經驗的會翻翻code看看什么地方會出現內存泄露,當然也會改參數,但會有節制的改了。老鳥會使用工具來分析到底是哪里造成了泄露?是code的問題還是內存真的配置不夠?

項目做完后功能測試通過了,拿到客戶那里跑了沒幾天發現不處理東西了,java傻掉了讓它干什么都不動,真不聽話!于是細細的看log發現了java.lang.OutOfMemoryError: Java heap space。性能測試呢?忽略了嗎?

有人也許覺得OM不是多大的事,如果這么想就錯了!

一個項目從設計、開發、測試、發布,這中間經歷了多少風雨相信有經歷的朋友肯定不會忘記多少個不眠之夜伴隨著你走完了一個項目周期,自以為把一個精美的產品賣給了客戶,可誰知道這里面竟然有一個潛伏很深的炸彈!說不定什么時候就會出現炸你一下,讓你手忙腳亂的去找問題點。趕上不能遠程連接的,還要去客戶那里解決,管理嚴格的甚至你帶進去的筆記本都要貼封條所有接口全封,不能聯網,試想身臨其境下,在一個機房孤單的去找OM源頭是什么感受?

Function

監控工具:
推薦使用visualvm來監控jvm的內存使用情況。

既然是要分析jvm,那么肯定得連接了,visualvm連接jvm有2種方式

在jvm啟動的參數中加入-Dcom.sun.management.jmxremote.port=端口號,jmx連接方式

jdk/bin/執行cp ../jre/lib/security/java.policy ./ 修改java.policy

grant codeBase "file:{java.home}/../lib/tools.jar"

再啟動jstatd

./jstatd -J-Djava.security.policy=java.policy -J-Djava.rmi.server.hostname=IP

這種是jstatd連接方式

分析dump工具:IBM HeapAnalyzer,分析jvm dump出的文件來看具體是哪里可能存在泄露問題

jdk自帶分析工具:jmap,jstat,jconsole,jps

線程分析:

不知道有沒有碰到這種問題的,看top cpu占用發現奇高不下,可現在應該什么都沒干啊,這是怎么回事?什么東西在瘋狂的做事還不讓我知道?往往這時候好多人只能止步了,因為不知道怎么去追查到底是誰在占用cpu。

先使用top確定你要分析的java進程pid,如:5683

使用jstack導出java的線程列表,如:jstack -l 5683 > 5683.stack

再使用top -H -p PID命令查看java進程里的子線程的實際占用,記錄id后和導出的stack文件比對,就能知道具體的是哪里占用

以上提到的每一種工具,大家都能搜到很詳細的使用說明,這里就不寫了省得有騙字數之嫌。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/65295.html

相關文章

  • 【譯】JavaScript 框架的探索與變遷(下)

    摘要:對此沒有任何限制,它不關心這個。一種控制變化的辦法是不可改變的,持久化的數據結構。總結檢測變化時開發中的核心問題,而框架們以各種方式解決這個問題。因為組件內的變化是不被允許的。 AngularJS:臟檢查 我不知道什么更新了,所以當更新的時候,我只能檢查所有的東西。 AngularJS 類似于 Ember,當狀態改變的時候,必須人工去處理。但不同的是,AngularJS 從不同的角度來...

    CollinPeng 評論0 收藏0
  • 今天,你的瀏覽器 “滾動” 了嗎

    摘要:今天,你的瀏覽器滾動了嗎序在頁面中,一個有高度或者寬度的容器是最常見的構成元素,而在其中的子元素有很大的概率超過父容器的尺寸限制,我們稱之為溢出。 今天,你的瀏覽器 滾動 了嗎? 序 在 Web 頁面中,一個有高度或者寬度的容器是最常見的構成元素,而在其中的子元素有很大的概率超過父容器的尺寸限制,我們稱之為溢出。而應對溢出,隱藏或者滾動是最常見的處理方式。滾動,作為 FEers 最經常...

    leo108 評論0 收藏0
  • 今天,你的瀏覽器 “滾動” 了嗎

    摘要:今天,你的瀏覽器滾動了嗎序在頁面中,一個有高度或者寬度的容器是最常見的構成元素,而在其中的子元素有很大的概率超過父容器的尺寸限制,我們稱之為溢出。 今天,你的瀏覽器 滾動 了嗎? 序 在 Web 頁面中,一個有高度或者寬度的容器是最常見的構成元素,而在其中的子元素有很大的概率超過父容器的尺寸限制,我們稱之為溢出。而應對溢出,隱藏或者滾動是最常見的處理方式。滾動,作為 FEers 最經常...

    ad6623 評論0 收藏0
  • 簡單基于spring的redis配置(單機和集群模式)

    摘要:優點是反序列化時不需要提供類型信息,但缺點是序列化后的結果非常龐大,是格式的倍左右,這樣就會消耗服務器的大量內存。使用庫將對象序列化為字符串。優點是速度快,序列化后的字符串短小精悍。 需要的jar包:spring版本:4.3.6.RELEASE,jedis版本:2.9.0,spring-data-redis:1.8.0.RELEASE;如果使用jackson序列化的話還額外需要:jac...

    Tychio 評論0 收藏0
  • 切圖崽的自我修養-規范CSS元素命名

    摘要:目前為止,這個命名已經可以打分,離滿分存在的差距在哪里如果一律采取駝峰命名,在從屬關系的可讀性上,稍微差了一點,來比較一下這兩個命名的可讀性和明顯采取駝峰匈牙利命名的方式可讀性更強。 前言 為什么我剛才寫的樣式亂了?! 如何給變量,文件命名是程序員的老大難問題。命名為什么會這么難,因為它太重要了。可以這么說,準確的命名可以提高代碼的可讀性,讓人容易理解,方便調試,也給以后修改和維護你的...

    mozillazg 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<