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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

《Java程序性能优化》之设计优化

發(fā)布時(shí)間:2023/12/31 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Java程序性能优化》之设计优化 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

豆瓣讀書(shū):http://book.douban.com/subject/19969386/


?

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

1.性能的參考指標(biāo)

? 執(zhí)行時(shí)間:

? CPU時(shí)間:

? 內(nèi)存分配:

? 磁盤(pán)吞吐量:

? 網(wǎng)絡(luò)吞吐量:

? 響應(yīng)時(shí)間:

2.木桶定律

? 系統(tǒng)的最終性能取決于系統(tǒng)中性能表現(xiàn)最差的組件,例如window系統(tǒng)內(nèi)置的評(píng)分就是選取最低分。可能成為系統(tǒng)瓶頸的計(jì)算資源如,磁盤(pán)I/O,異常,數(shù)據(jù)庫(kù),鎖競(jìng)爭(zhēng),內(nèi)存等。

??性能優(yōu)化的幾個(gè)方面,如設(shè)計(jì)優(yōu)化,Java程序優(yōu)化,并行程序開(kāi)發(fā)及優(yōu)化,JVM調(diào)優(yōu),Java性能調(diào)優(yōu)工具的使用等。

3.Amdahl定律

? 加速比=優(yōu)化前系統(tǒng)耗時(shí)/優(yōu)化后系統(tǒng)耗時(shí),加速比越高,表明優(yōu)化效果越好。

? 單純?cè)黾犹幚砥鲾?shù)量對(duì)提升系統(tǒng)性能意義不大,必須同時(shí)提高程序的并行化比重。

?

第二章 設(shè)計(jì)優(yōu)化

2.2 常用優(yōu)化組件和方法
1.緩沖Buffer

緩沖最常用的場(chǎng)景就是提高I/O的速度。JDK很多IO組件都提供了緩沖功能。
如:

//Writer writer=new FileWriter(new File("file.txt")); Writer writer=new BufferedWriter(new FileWriter(new File("file.txt")),2000); //包裝過(guò)后效率大概相差接近一倍 long begin=System.currentTimeMillis(); for(int i=0;i<10000;i++){ writer.write(i); } writer.close(); System.out.print("Spend:"+(System.currentTimeMillis()-begin));

BufferedWriter對(duì)象擁有兩個(gè)構(gòu)造函數(shù):
public BufferedWriter(Writer out);
public BufferedWriter(Writer out,int sz);
第一個(gè)將默認(rèn)構(gòu)造大小為8K的緩沖區(qū),第二個(gè)允許在應(yīng)用層指定緩沖區(qū)的大小。
緩沖區(qū)不宜過(guò)大,也不宜過(guò)小。
同樣,BufferedOutputStream可以包裝所有的OutputStream,為其提供緩沖功能,提高輸出流的效率。

緩沖區(qū)對(duì)任何一種上下層組件存在性能差異的場(chǎng)合都可以起到很好的效果,典型的例子是,
使用緩沖區(qū)提升動(dòng)畫(huà)顯示效果。
2.緩存
緩存也是一塊為提升系統(tǒng)性能而開(kāi)辟的內(nèi)存空間,暫存數(shù)據(jù)處理結(jié)果,并提供下次訪問(wèn)使用。
目前有許多優(yōu)秀的緩存工具可供使用。
3.對(duì)象復(fù)用——“池”
對(duì)象池化,核心思想是,如果一個(gè)類(lèi)被頻繁的請(qǐng)求使用,不必每次都生成一個(gè)實(shí)例,可以保存在“池”中,需要時(shí)直接獲取。
典型的如線程池和數(shù)據(jù)庫(kù)連接池。
4.并行替代串行
5.負(fù)載均衡
負(fù)載均衡的典型實(shí)現(xiàn)是Tomcat集群,配置Tomcat集群實(shí)現(xiàn)負(fù)載均衡,可以通過(guò)Apache服務(wù)器實(shí)現(xiàn)。即使用Apache服務(wù)器作為負(fù)載分配器,將請(qǐng)求轉(zhuǎn)向各個(gè)Tomcat服務(wù)器。
兩種基本的Session共享模式。黏性Session模式和復(fù)制Session模式。
黏性Session模式下,所有的Session信息被平均分配到各個(gè)Tomcat節(jié)點(diǎn)上,但是節(jié)點(diǎn)宕機(jī),其所維護(hù)的session信息將丟失,不具備高可用性,同一個(gè)用戶(hù)只能與一臺(tái)Tomcat交互。
復(fù)制session,使得所有session在所有Tomcat節(jié)點(diǎn)上保持一致。一個(gè)節(jié)點(diǎn)的session被修改,會(huì)被廣播到其他節(jié)點(diǎn)上,保持同步。

總結(jié)

以上是生活随笔為你收集整理的《Java程序性能优化》之设计优化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。