亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

OM引起你的注意了嗎?

loonggg / 2537人閱讀

摘要:引曾幾何時(shí)這句話總是在你的程序中出現(xiàn),新手到是什么問題后就去改了內(nèi)存大小還總是分不清楚,想的是總之設(shè)大點(diǎn)我就看不到這個(gè)錯(cuò)誤了。稍微有點(diǎn)經(jīng)驗(yàn)的會翻翻看看什么地方會出現(xiàn)內(nèi)存泄露,當(dāng)然也會改參數(shù),但會有節(jié)制的改了。

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

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

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

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

Function

監(jiān)控工具:
推薦使用visualvm來監(jiān)控jvm的內(nèi)存使用情況。

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

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

jdk/bin/執(zhí)行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占用發(fā)現(xiàn)奇高不下,可現(xiàn)在應(yīng)該什么都沒干啊,這是怎么回事?什么東西在瘋狂的做事還不讓我知道?往往這時(shí)候好多人只能止步了,因?yàn)椴恢涝趺慈プ凡榈降资钦l在占用cpu。

先使用top確定你要分析的java進(jìn)程pid,如:5683

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

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

以上提到的每一種工具,大家都能搜到很詳細(xì)的使用說明,這里就不寫了省得有騙字?jǐn)?shù)之嫌。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/65295.html

相關(guān)文章

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

    摘要:對此沒有任何限制,它不關(guān)心這個(gè)。一種控制變化的辦法是不可改變的,持久化的數(shù)據(jù)結(jié)構(gòu)。總結(jié)檢測變化時(shí)開發(fā)中的核心問題,而框架們以各種方式解決這個(gè)問題。因?yàn)榻M件內(nèi)的變化是不被允許的。 AngularJS:臟檢查 我不知道什么更新了,所以當(dāng)更新的時(shí)候,我只能檢查所有的東西。 AngularJS 類似于 Ember,當(dāng)狀態(tài)改變的時(shí)候,必須人工去處理。但不同的是,AngularJS 從不同的角度來...

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

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

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

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

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

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

    Tychio 評論0 收藏0
  • 切圖崽的自我修養(yǎng)-規(guī)范CSS元素命名

    摘要:目前為止,這個(gè)命名已經(jīng)可以打分,離滿分存在的差距在哪里如果一律采取駝峰命名,在從屬關(guān)系的可讀性上,稍微差了一點(diǎn),來比較一下這兩個(gè)命名的可讀性和明顯采取駝峰匈牙利命名的方式可讀性更強(qiáng)。 前言 為什么我剛才寫的樣式亂了?! 如何給變量,文件命名是程序員的老大難問題。命名為什么會這么難,因?yàn)樗匾???梢赃@么說,準(zhǔn)確的命名可以提高代碼的可讀性,讓人容易理解,方便調(diào)試,也給以后修改和維護(hù)你的...

    mozillazg 評論0 收藏0

發(fā)表評論

0條評論

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