摘要:性能調優概述性能優化有風險和弊端,性能調優必須有明確的目標,不要為了調優而調優盲目調優,風險遠大于收益程序性能的主要表現點執行速度程序的反映是否迅速,響應時間是否足夠短內存分配內存分配是否合理,是否過多地消耗內存或者存在內存泄漏啟動時間程序
[TOC]
Java性能調優概述性能優化有風險和弊端,性能調優必須有明確的目標,不要為了調優而調優?。。∶つ空{優,風險遠大于收益?。?!程序性能的主要表現點
執行速度:程序的反映是否迅速,響應時間是否足夠短
內存分配:內存分配是否合理,是否過多地消耗內存或者存在內存泄漏
啟動時間:程序從運行到可以正常處理業務需要花費多少時間
負載承受能力:當系統壓力上升時,系統的執行速度、響應時間的上升曲線是否平緩
衡量程序性能的主要指標:執行時間:程序從運行到結束所使用的時間
CPU時間:函數或者線程占用CPU的時間
內存分配:程序在運行時占用內容的空間
磁盤吞吐量:描述I/O的使用情況
網絡吞吐量:描述網絡的使用情況
響應時間:系統對用戶行為或者事件做出響應的時間,響應時間越短,性能越好
有可能成為系統性能瓶頸的幾個方面:磁盤I/O:磁盤I/O讀寫的速度比內容慢很多,如果程序中需要等待磁盤I/O處理,低效的磁盤I/O操作會拖累整個系統
網絡操作:由于網絡環境的不確定性,導致網絡數據讀寫的操作可能比本地磁盤I/O更慢,如果,網絡操作處理不當,也回成為系統瓶頸
CPU:對計算資源要求較高的應用,由于長時間、不間斷地大量占用CPU資源,那么對CPU的爭奪將導致系統性能問題
異常:Java中的異常捕獲和處理都是非常消耗資源的,如果代碼中高頻率的異常處理,那么代碼的整體系統能就會明顯下降
數據庫:大量數據對數據庫的讀寫操作是相當費時的,而往往很多代碼中需要等到數據庫操作完成之后才可以進行后續操作,這種緩慢的同步操作也將會成為系統瓶頸
鎖競爭:對于高并發的系統來講,鎖競爭是相當激烈的,這對性能是一個極大的打擊,鎖競爭會明顯增加線程上下文切換的開銷,而往往這些開銷都是與應用需求無關的系統開銷,白白占用CPU資源,帶來不了任何好處
內存:一般情況,只要應用程序設計合理,內存在讀寫速度上不太可能成為性能瓶頸。除非程序中進行了高頻率的內存交換和掃描。內存成為系統瓶頸的最可能的情況就是內存大小不足。如果應用程序中將一些常用的核心數據存入內存,這個一定程度上會降低程序性能,因此,在將常用數據寫入內存的時候,要注意一些優化處理
性能調優的層次設計調優:處于所有調優手段的上層,在軟件開發之前進行,軟件設計和架構對軟件整體質量有決定性的影響,所以,設計調優對系統性能的影響也是最大的。其他方面的優化都是對系統微觀層面上量的優化,而設計優化是對系統在宏觀方面上質的優化。一個良好的系統設計可以規避很多潛在的性能問題,因此,盡可能多花時間在系統設計上,是創建高性能程序的關鍵
代碼調優:發生在軟件開發的過程中、軟件開發完成后、軟件維護過程中,對代碼進行改進和優化,要求開發員熟悉語言的API、在合適場景使用正確的API、對算法和數據結構靈活運用
JVM調優:需要對JVM運行原理和基本內存結構有一定了解,然后依據應用程序的特點,設置合理的JVM啟動參數
數據庫調優:主要包括在應用層對SQL語句進行優化,對數據庫進行優化(設計具有良好表結構的數據庫),對數據庫軟件進行優化(比如使用Oracle數據庫,需要設置合理大小的共享池、緩存緩沖區等)
操作系統調優:不同類型的操作系統,調優的手段和參數可能會有所不同。在主流額UNIX系統中,共享內存段、信號量、共享內存最大值、共享內存最小值等都是可以進行優化的系統資源
基本調優策略和手段明確性能優化的目標,確定優化的對象和最終目的(首先定位到系統的性能瓶頸,確定相關代碼進行代碼優化,如已無代碼優化空間,則要考慮其他方面的優化:JVM優化、數據庫層面的優化、操作系統層面的優化等)
對性能優化要進行嚴格的測試
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72284.html
摘要:哪吒社區技能樹打卡打卡貼函數式接口簡介領域優質創作者哪吒公眾號作者架構師奮斗者掃描主頁左側二維碼,加入群聊,一起學習一起進步歡迎點贊收藏留言前情提要無意間聽到領導們的談話,現在公司的現狀是碼農太多,但能獨立帶隊的人太少,簡而言之,不缺干 ? 哪吒社區Java技能樹打卡?【打卡貼 day2...
摘要:使用簽署免費證書后端掘金本文操作在操作系統下完成,需要和超文本傳輸安全協議英語,縮寫,常稱為,紅黑樹深入剖析及實現后端掘金紅黑樹是平衡二叉查找樹的一種。 使用 Lets Encrypt 簽署免費 Https 證書 - 后端 - 掘金 本文操作在Linux操作系統下完成,需要Python和Nginx 超文本傳輸安全協議(英語:Hypertext Transfer Protocol Sec...
閱讀 1342·2021-09-24 10:26
閱讀 3655·2021-09-06 15:02
閱讀 604·2019-08-30 14:18
閱讀 576·2019-08-30 12:44
閱讀 3119·2019-08-30 10:48
閱讀 1936·2019-08-29 13:09
閱讀 1993·2019-08-29 11:30
閱讀 2279·2019-08-26 13:36