天天看點

Java 背景性能優化簡要

版權聲明:本文為半吊子子全棧工匠(wireless_com,同公衆号)原創文章,未經允許不得轉載。 https://blog.csdn.net/wireless_com/article/details/44276323

業務系統性能優化的前提時觀察和診斷,觀察工具如下:

前端優化工具:YSlow

頁面響應時間:Firebug

方法相應時間:btrace

GC日志分析:JVM 啟動參數

資料庫優化:慢查詢

系統資源調用:監控

性能診斷測試工具如下:

ab: httpd.apache.org/docs/2.2/programs/ab.html

JMeter: jmeter.apache.org

Loadrunner

反向代理引流,TCPcopy:請求複制工具 github.com/wangbin579/tcpcopy

性能優化方法:

前端性能:http請求數量,CDN網絡,使用壓縮

Java程式優化:單例,Future模式的非阻塞,線程池,使用NIO,減少上下文切換,減低鎖競争

傳輸壓縮與結果緩存

資料庫查詢優化:合理索引,減少關聯查詢的反範式設計,使用查詢緩存,搜尋引擎,使用Key-Value資料庫,

GC優化

提升硬體性能

Java應用排查工具:

JPS:輸出JVM的程序資訊

JSTAT:JVM狀态監控工具

JInfo:應用程式的配置參數

JStack:線程快照

JMap:回收對象的隊列,堆棧資訊

Btrace:動态跟蹤工具 kenai.com/projects/btrace

Jconsole:圖形化工具

MAT: 圖形化堆分析工具

VisualVM:全能複合工具

Linux 日志分析常用指令:

檢視檔案内容:cat 

分頁顯示檔案:more,less

顯示檔案頭尾:tail head

内容排序: sort

字元統計:wc

檢視重複出現的行:uniq

字元串查找:grep

檔案查找:find

歸檔:tar

URL通路工具:curl

檢視最耗時的頁面:

cat localaccess.log |sort -k 2 -n -r |head -10

進一步,sed,awk shell了