使用jvisualvm監控JAVA程式,注意對程式效能的影響
最近在使用阿里的Dubbo【http://code.alibabatech.com/wiki/display/dubbo/Home-zh】做一個實時分析功能,為了提高效能,對程式進行了很多的優化工作,在此過程中JDK中的jvisualvm的確功勞不小,但是也有讓我誤解的地方。
先說它的功勞:
第一:可以幫我監控執行緒的數量,及時發現沒有正常結束的執行緒。由於給dubbo配置了800的執行緒池,我當前活動的執行緒中守護執行緒為826,總數減去800個執行緒池中的執行緒,dubbo佔用了26個守護執行緒,再多出來的執行緒大多就是我程式中生成的執行緒了。
第二:可以監控CPU的使用情況。
第三:監控堆佔用記憶體的情況。
第四:監控總的類的載入數量。
下面說一下它的問題:
添加了監控後,堆記憶體的佔用情況和正常時佔用有不小的偏差:
剛開始使用監控後3分鐘的情況:
下面是使用監控後10分鐘的情況:
對比兩個圖,可以看出,在沒有使用監控的時候,堆記憶體的佔用比較平衡,使用了監控後堆記憶體迅速增加,之後大約5分鐘後GC一次,然後又慢慢上升,所以建議大家在使用監控的時候,多親關注執行緒和類的載入的情況,另外,不要長期使用工具監控程式!
相關推薦
使用jvisualvm監控JAVA程式,注意對程式效能的影響
最近在使用阿里的Dubbo【http://code.alibabatech.com/wiki/display/dubbo/Home-zh】做一個實時分析功能,為了提高效能,對程式進行了很多的優化工作,在此過程中JDK中的jvisualvm的確功勞不小,但是也有讓
如何使用JDK自帶的jvisualvm監控java程式【Java HotSpot(TM)】
這篇文章僅針對HostSpot虛擬機器 第一步,寫一個測試的policy檔案,命名為test.policy,指定可以訪問tools.jar,內容如下: grant codebase "file:${java.home}/../lib/tools.jar" { pe
【181027】聊天室程式,點對點,VC++程式原始碼
基於VC++的點對點聊天室程式,程式包括服務端和客戶端,伺服器程式是chatsrvr.exe,客戶端是ChatClient.exe. 伺服器先執行,客戶連線到伺服器執行的計算機的IP即可。在客戶端傳送訊息的時候,可選擇字型顏色、聊天物件、過濾、是否設定為悄悄話等,都是相對基礎點的功能,希望剛
現在為止,我對程式設計師這一職業的看法
程式設計師,在我看來不僅僅只是寫程式碼,各方面的專業知識你必須要多去了解,才能在面對問題時找到更有效的解決方法。如果你要去金融公司開發程式,你不得不懂得金融方面相關的知識。這僅僅是從基層程式設計師來看
使用java中,面向對象封裝+繼承的方法算題
去掉空格 方法 amp get urn 余數 oid pan 新的 1.第一種:給定一行字符,逆序輸出此字符串(空格.數字不輸出),如“ab 23,(4 cd”輸出“dc(,ba”。(要求:使用面向對象封裝+繼承) class Bu { private Strin
程式人生寫程式,又拿程式換酒錢。
快排(quick sort),是快速排序的簡稱。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,然後再按此方法對這兩部分資料分別進行快速排序
指令碼實現 監視ARM上某個已知名稱的程式,若該程式退出了,則重新執行它。
#!/bin/sh while : do stillRunning=$(ps |grep "test" |grep -v "grep") if [ "$stillRunning" ] ; then echo "test service was already
JNI學習(四)、本地方法建立java物件,以及對字串的操作
一、本地方法建立Java物件 JNIEnv提供了下面的幾個方法來建立一個Java物件: jobject NewObject(jclass clazz, jmethodID methodID, ...) jobject NewObjectV(jclass clazz, j
VS2010執行opencv的程式,出現“應用程式無法正常啟動0xc000007b”的解決方法
問題描述 我用vs2013+opencv跑實驗,可以正常生成可執行檔案,但是執行的時候就出現“應用程式無法正常啟動0xc000007b”,如下圖: 原因是缺少direct X的相關元件。即使安裝過最新版本的direct X,還是會報錯。 解決方法 參考網址: 專用工具下
vc++裡面除錯dll程式,在dll程式裡面打斷點,進入dll斷點的方法
今天碰到一個問題,就是我的vs2010工程裡面,呼叫了一個vc6.0寫的dll程式,我想進入dll程式裡面,打斷點除錯下,要怎麼做呢? 1、將vc6.0寫的程式的dsw工程用vs2010開啟,會生成一個 xxxxx.vcxproj的檔案,在你的vs2010的工程裡面載入這個
(四)我的第二個GUI程式,實現Python程式的介面與邏輯分離
1. 在Pycharm中,新建專案SecondGUI。2. 呼叫Qt設計師(Designer.exe),新設計一個視窗的ui檔案(myComboBox.ui)3. 呼叫PyUIC5,將myComboBox.ui檔案轉為myComboBox.py檔案。4. 新建my_Comb
豆瓣電影搜尋爬蟲程式,爬蟲小程式,適合初學者
最近在學python,之前用Python寫過簡單的圖片爬取,今天想著用python爬一下豆瓣的電影,就有了下面的程式: #coding:utf-8 import re import sys import urllib from bs4 import BeautifulSo
jsp中嵌入的java代碼執行對html的影響方式
就是 java代碼 align 嵌入 int 變量 ava 位置 作用 1 直接輸出html標簽嵌入到html中 <body> <h1>顯示當前時間和日期</h1> <% Date date = new Date();
異常處理 try...catch...finally 執行順序, 以及對返回值得影響
異常處理 try...catch...finally 執行順序, 以及對返回值得影響 結論:1、不管有沒有出現異常,finally塊中程式碼都會執行;2、當try和catch中有return時,finally仍然會執行;3、finally是在return後面的表示式運算後執行的(此時並沒有返回運算後的值,而
網站的靜態資源為什麼要使用獨立域名,竟然對訪問效能還有如此大的影響
在大型網站中,我們發現頁面資源經常使用不同的域名進行引用,例如126郵箱的部分js、css、圖片存放於http://mimg.127.net/域名下,京東的部分靜態圖片存放在http://img11.3
sequence cache設定 對RAC效能影響
此文章為翻譯轉譯文章: 環境 : 11g 64位 2節點的RAC 開發同事每次上程式碼的時候,建立sequence都是指定“no cache”。長期下來效能很慢。下面分析下: 如果指定CACHE值,Oracle就可以預先在記憶體裡面放置一些Sequence
Java:假設車庫有3個車位(可以通過boolean[]陣列來表示車庫)可以停車,寫一個程式模擬多個使用者開車離開,停車入庫的效果。注意:車位有車時不能停車。
假設車庫有3個車位(可以通過boolean[]陣列來表示車庫)可以停車,寫一個程式模擬多個使用者開車離開,停車入庫的效果。注意:車位有車時不能停車。 1)使用阻塞佇列來實現(BlockingQueue<T>) Producer類 package com.多執行緒停車問
使用JDK 1.6自帶的jvisualvm監控遠端伺服器中Java程式資源佔用情況
熱度: 因為做實驗的需要,最近把實驗室的Web資料抽取程式修改為多執行緒版本並在伺服器上做大量的資料抽取工作,伺服器是Ubuntu Server 10.01版本,通過Putty連線監控程式的執行情況非常不直觀,需要使用一個Java資源監控程式實現對目標程式的實時監控。Jdk1.5版本
用JVISUALVM遠端監控JAVA程式的效能
java專案的設定 1.遠端開啟java程式使用下面的命令列引數啟動Java程式: -Dcom.sun.management.jmxremote.port=<port> -Dcom.su
一個Java開發5年的程式設計師,講述自己三年突破瓶頸的經驗,注意到這些您能少走彎路。
對於那些想改變自己的朋友們來說,還是需要看清楚一些東西,有一些經驗也想和大家分享。同樣是職場人士,我也有我的經驗和感受。在打工的時候,我曾經創造了3年加薪7次的小小“戰績”(同時進入公司的員工,加薪不超過2次的員工大有人在),順利地從員工做到了總監,是公司所有員工中成長最快的。我敢肯定,在看過這