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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java性能监控

發布時間:2024/9/30 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java性能监控 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • Jvm內存模型
    • 程序計數器ProgramCounterRegister:
    • 虛擬機:VMStack
    • 本地方法:NativeStack
    • 堆:Heap
  • 垃圾回收
  • jconsole與jvisualvm
    • jvisualvm能干什么
    • 安裝插件方便查看gc
    • 優化
  • JVM分析&調優

Jvm內存模型

程序計數器ProgramCounterRegister:

記錄的是正在執行的虛擬機字節碼指令的地址,
此內存區域是唯一一個在JAVA虛擬機規范中沒有規定任何OutOfMemoryError的區

虛擬機:VMStack

描述的是JAVA方法執行的內存模型,每個方法在執行的時候都會創建一個棧幀,
用于存儲局部變量表,操作數棧,動態鏈接,方法接口等信息
局部變量表存儲了編譯期可知的各種基本數據類型、對象引用
線程請求的棧深度不夠會報StackOverflowError異常
棧動態擴展的容量不夠會報OutOfMemoryError異常
虛擬機棧是線程隔離的,即每個線程都有自己獨立的虛擬機棧

本地方法:NativeStack

本地方法棧類似于虛擬機棧,只不過本地方法棧使用的是本地方法

堆:Heap

幾乎所有的對象實例都在堆上分配內存

所有的對象實例以及數組都要在堆上分配。堆是垃圾收集器管理的主要區域,也被稱為“GC
堆”;也是我們優化最多考慮的地方。
堆可以細分為:

  • 新生代
    • Eden空間
    • FromSurvivor空間
    • ToSurvivor空間
  • 老年代
  • 永久代/元空間
    • Java8以前永久代,受jvm管理,java8以后元空間,直接使用物理內存。因此,
      默認情況下,元空間的大小僅受本地內存限制。

垃圾回收

從Java8開始,HotSpot已經完全將永久代(PermanentGeneration)移除,取而代之的是一
個新的區域—元空間(MetaSpace)

jconsole與jvisualvm

Jdk的兩個小工具jconsole、jvisualvm(升級版的jconsole);通過命令行啟動,可監控本地和
遠程應用。遠程應用需要配置

jvisualvm能干什么

監控內存泄露,跟蹤垃圾回收,執行時內存、cpu分析,線程分析…

運行:正在運行的
休眠:sleep
等待:wait
駐留:線程池里面的空閑線程
監視:阻塞的線程,正在等待鎖

安裝插件方便查看gc

  • Cmd啟動jvisualvm
  • 工具->插件

優化

中間件越多,性能損失越大,大多都損失在網絡交互了;
業務:

  • Db(MySQL優化)
  • 模板的渲染速度(緩存)
  • 靜態資源(動靜分離)

JVM分析&調優

jvm調優,調的是穩定,并不能帶給你性能的大幅提升。服務穩定的重要性就不用多說了,
保證服務的穩定,gc永遠會是Java程序員需要考慮的不穩定因素之一。復雜和高并發下的
服務,必須保證每次gc不會出現性能下降,各種性能指標不會出現波動,gc回收規律而且
干凈,找到合適的jvm設置。Fullgc最會影響性能,根據代碼問題,避免fullgc頻率。

可以適當調大年輕代容量,讓大對象可以在年輕代觸發yonggc,調整大對象在年輕代的回收頻
次,盡可能保證大對象在年輕代回收,減小老年代縮短回收時間;

總結

以上是生活随笔為你收集整理的Java性能监控的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。