最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java性能調(diào)優(yōu)概述

 更新時(shí)間:2017年02月04日 16:30:20   作者:九朗的碼農(nóng)生活  
本文介紹了Java程序性能的主要表現(xiàn)點(diǎn)、衡量程序性能的主要指標(biāo)、性能調(diào)優(yōu)的層次、基本調(diào)優(yōu)策略和手段等,具有很好的參考價(jià)值,下面跟著小編一起來看下吧

程序性能的主要表現(xiàn)點(diǎn):

  • 執(zhí)行速度:程序的反映是否迅速,響應(yīng)時(shí)間是否足夠短
  • 內(nèi)存分配:內(nèi)存分配是否合理,是否過多地消耗內(nèi)存或者存在內(nèi)存泄漏
  • 啟動時(shí)間:程序從運(yùn)行到可以正常處理業(yè)務(wù)需要花費(fèi)多少時(shí)間
  • 負(fù)載承受能力:當(dāng)系統(tǒng)壓力上升時(shí),系統(tǒng)的執(zhí)行速度、響應(yīng)時(shí)間的上升曲線是否平緩

衡量程序性能的主要指標(biāo):

  • 執(zhí)行時(shí)間:程序從運(yùn)行到結(jié)束所使用的時(shí)間
  • CPU時(shí)間:函數(shù)或者線程占用CPU的時(shí)間
  • 內(nèi)存分配:程序在運(yùn)行時(shí)占用內(nèi)容的空間
  • 磁盤吞吐量:描述I/O的使用情況
  • 網(wǎng)絡(luò)吞吐量:描述網(wǎng)絡(luò)的使用情況
  • 響應(yīng)時(shí)間:系統(tǒng)對用戶行為或者事件做出響應(yīng)的時(shí)間,響應(yīng)時(shí)間越短,性能越好

有可能成為系統(tǒng)性能瓶頸的幾個(gè)方面:

  • 磁盤I/O:磁盤I/O讀寫的速度比內(nèi)容慢很多,如果程序中需要等待磁盤I/O處理,低效的磁盤I/O操作會拖累整個(gè)系統(tǒng)
  • 網(wǎng)絡(luò)操作:由于網(wǎng)絡(luò)環(huán)境的不確定性,導(dǎo)致網(wǎng)絡(luò)數(shù)據(jù)讀寫的操作可能比本地磁盤I/O更慢,如果,網(wǎng)絡(luò)操作處理不當(dāng),也回成為系統(tǒng)瓶頸
  • CPU:對計(jì)算資源要求較高的應(yīng)用,由于長時(shí)間、不間斷地大量占用CPU資源,那么對CPU的爭奪將導(dǎo)致系統(tǒng)性能問題
  • 異常:Java中的異常捕獲和處理都是非常消耗資源的,如果代碼中高頻率的異常處理,那么代碼的整體系統(tǒng)能就會明顯下降
  • 數(shù)據(jù)庫:大量數(shù)據(jù)對數(shù)據(jù)庫的讀寫操作是相當(dāng)費(fèi)時(shí)的,而往往很多代碼中需要等到數(shù)據(jù)庫操作完成之后才可以進(jìn)行后續(xù)操作,這種緩慢的同步操作也將會成為系統(tǒng)瓶頸
  • 鎖競爭:對于高并發(fā)的系統(tǒng)來講,鎖競爭是相當(dāng)激烈的,這對性能是一個(gè)極大的打擊,鎖競爭會明顯增加線程上下文切換的開銷,而往往這些開銷都是與應(yīng)用需求無關(guān)的系統(tǒng)開銷,白白占用CPU資源,帶來不了任何好處
  • 內(nèi)存:一般情況,只要應(yīng)用程序設(shè)計(jì)合理,內(nèi)存在讀寫速度上不太可能成為性能瓶頸。除非程序中進(jìn)行了高頻率的內(nèi)存交換和掃描。內(nèi)存成為系統(tǒng)瓶頸的最可能的情況就是內(nèi)存大小不足。如果應(yīng)用程序中將一些常用的核心數(shù)據(jù)存入內(nèi)存,這個(gè)一定程度上會降低程序性能,因此,在將常用數(shù)據(jù)寫入內(nèi)存的時(shí)候,要注意一些優(yōu)化處理

性能調(diào)優(yōu)的層次:

  • 設(shè)計(jì)調(diào)優(yōu):處于所有調(diào)優(yōu)手段的上層,在軟件開發(fā)之前進(jìn)行,軟件設(shè)計(jì)和架構(gòu)對軟件整體質(zhì)量有決定性的影響,所以,設(shè)計(jì)調(diào)優(yōu)對系統(tǒng)性能的影響也是最大的。其他方面的優(yōu)化都是對系統(tǒng)微觀層面上量的優(yōu)化,而設(shè)計(jì)優(yōu)化是對系統(tǒng)在宏觀方面上質(zhì)的優(yōu)化。一個(gè)良好的系統(tǒng)設(shè)計(jì)可以規(guī)避很多潛在的性能問題,因此,盡可能多花時(shí)間在系統(tǒng)設(shè)計(jì)上,是創(chuàng)建高性能程序的關(guān)鍵
  • 代碼調(diào)優(yōu):發(fā)生在軟件開發(fā)的過程中、軟件開發(fā)完成后、軟件維護(hù)過程中,對代碼進(jìn)行改進(jìn)和優(yōu)化,要求開發(fā)員熟悉語言的API、在合適場景使用正確的API、對算法和數(shù)據(jù)結(jié)構(gòu)靈活運(yùn)用
  • JVM調(diào)優(yōu):需要對JVM運(yùn)行原理和基本內(nèi)存結(jié)構(gòu)有一定了解,然后依據(jù)應(yīng)用程序的特點(diǎn),設(shè)置合理的JVM啟動參數(shù)
  • 數(shù)據(jù)庫調(diào)優(yōu):主要包括在應(yīng)用層對SQL語句進(jìn)行優(yōu)化,對數(shù)據(jù)庫進(jìn)行優(yōu)化(設(shè)計(jì)具有良好表結(jié)構(gòu)的數(shù)據(jù)庫),對數(shù)據(jù)庫軟件進(jìn)行優(yōu)化(比如使用Oracle數(shù)據(jù)庫,需要設(shè)置合理大小的共享池、緩存緩沖區(qū)等)
  • 操作系統(tǒng)調(diào)優(yōu):不同類型的操作系統(tǒng),調(diào)優(yōu)的手段和參數(shù)可能會有所不同。在主流額UNIX系統(tǒng)中,共享內(nèi)存段、信號量、共享內(nèi)存最大值、共享內(nèi)存最小值等都是可以進(jìn)行優(yōu)化的系統(tǒng)資源

基本調(diào)優(yōu)策略和手段

  • 明確性能優(yōu)化的目標(biāo),確定優(yōu)化的對象和最終目的(首先定位到系統(tǒng)的性能瓶頸,確定相關(guān)代碼進(jìn)行代碼優(yōu)化,如已無代碼優(yōu)化空間,則要考慮其他方面的優(yōu)化:JVM優(yōu)化、數(shù)據(jù)庫層面的優(yōu)化、操作系統(tǒng)層面的優(yōu)化等)
  • 對性能優(yōu)化要進(jìn)行嚴(yán)格的測試

總結(jié)

性能優(yōu)化有風(fēng)險(xiǎn)和弊端,性能調(diào)優(yōu)必須有明確的目標(biāo),不要為了調(diào)優(yōu)而調(diào)優(yōu)!?。∶つ空{(diào)優(yōu),風(fēng)險(xiǎn)遠(yuǎn)大于收益?。?!

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

  • MyBatis?SQL映射文件的作用和結(jié)構(gòu)詳解

    MyBatis?SQL映射文件的作用和結(jié)構(gòu)詳解

    MyBatisSQL映射文件定義了SQL語句和參數(shù)映射規(guī)則,用于將Java代碼與數(shù)據(jù)庫操作解耦,實(shí)現(xiàn)SQL語句的靈活配置和動態(tài)生成
    2025-03-03
  • Java使用Scanner類進(jìn)行控制臺輸入實(shí)現(xiàn)方法

    Java使用Scanner類進(jìn)行控制臺輸入實(shí)現(xiàn)方法

    這篇文章主要介紹了Java使用Scanner類進(jìn)行控制臺輸入實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Java使用jni清屏功能的實(shí)現(xiàn)(只針對cmd)

    Java使用jni清屏功能的實(shí)現(xiàn)(只針對cmd)

    JNI是Java Native Interface的縮寫,它提供了若干的API實(shí)現(xiàn)了Java和其他語言的通信(主要是C&C++)。這篇文章主要介紹了Java使用jni清屏功能的實(shí)現(xiàn)(只針對cmd) ,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-05-05
  • SpringBoot整合Spring Security的詳細(xì)教程

    SpringBoot整合Spring Security的詳細(xì)教程

    這篇文章主要介紹了SpringBoot整合Spring Security的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 關(guān)于Synchronized和ReentranLock的區(qū)別及說明

    關(guān)于Synchronized和ReentranLock的區(qū)別及說明

    文章介紹了Java中的`synchronized`關(guān)鍵字和`ReentrantLock`類,兩者都可以用于解決多線程同步問題,但`ReentrantLock`提供了更多的功能和靈活性
    2024-12-12
  • 詳解SpringBoot?Start組件開發(fā)之記錄接口日志信息

    詳解SpringBoot?Start組件開發(fā)之記錄接口日志信息

    這篇文章主要為大家介紹了SpringBoot-Start組件開發(fā)之記錄接口日志信息詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 詳解JFX11+IDEA跨平臺打包發(fā)布的完美解決辦法

    詳解JFX11+IDEA跨平臺打包發(fā)布的完美解決辦法

    這篇文章主要介紹了詳解JFX11+IDEA跨平臺打包發(fā)布的完美解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Spring boot 數(shù)據(jù)庫連接斷線重連問題

    Spring boot 數(shù)據(jù)庫連接斷線重連問題

    這篇文章主要介紹了Spring boot 數(shù)據(jù)庫連接斷線重連問題,需要的朋友可以參考下
    2017-06-06
  • Java四種常用線程池的詳細(xì)介紹

    Java四種常用線程池的詳細(xì)介紹

    今天小編就為大家分享一篇關(guān)于Java四種常用線程池的詳細(xì)介紹,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • java中ThreadLocalRandom的使用詳解

    java中ThreadLocalRandom的使用詳解

    這篇文章主要介紹了java中ThreadLocalRandom的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03

最新評論

SHOW| 错那县| 阳城县| 庆云县| 揭东县| 湾仔区| 商河县| 林西县| 高青县| 加查县| 浙江省| 融水| 鸡东县| 会宁县| 浠水县| 大邑县| 噶尔县| 米林县| 页游| 吐鲁番市| 潮州市| 惠东县| 安龙县| 扶沟县| 阿巴嘎旗| 怀宁县| 荃湾区| 资源县| 内黄县| 呼图壁县| 永昌县| 建瓯市| 中阳县| 江津市| 石河子市| 玉林市| 皋兰县| 清流县| 和硕县| 衡山县| 芦山县|