下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第第頁(yè)BEAWebLogic平臺(tái)下J2EE調(diào)優(yōu)攻略1BEAWebLogic平臺(tái)下J2EE調(diào)優(yōu)攻略1
發(fā)表于:2023-08-07來(lái)源::點(diǎn)擊數(shù):標(biāo)簽:WebLogic平臺(tái)攻略接口BEA對(duì)象
BEAWebLogic平臺(tái)下J2EE調(diào)優(yōu)攻略第一章應(yīng)用程序調(diào)優(yōu)1.1.1通用代碼調(diào)優(yōu)1.1.2減小沒(méi)有必要的操作對(duì)象的創(chuàng)建是個(gè)很昂貴的工作,所以我們應(yīng)當(dāng)盡量減少對(duì)象的創(chuàng)建,在需要的時(shí)候聲明它,初始化它,不要重復(fù)初始化一個(gè)對(duì)象,盡量能做到再使用,而用完后置null
BEAWebLogic平臺(tái)下J2EE調(diào)優(yōu)攻略第一章應(yīng)用程序調(diào)優(yōu)
1.1.1通用代碼調(diào)優(yōu)
1.1.2減小沒(méi)有必要的操作
對(duì)象的創(chuàng)建是個(gè)很昂貴的工作,所
以我們應(yīng)當(dāng)盡量減少對(duì)象的創(chuàng)建,在需要的時(shí)候聲明它,初始化它,不要重復(fù)初始化一個(gè)對(duì)象,盡量能做到
再使用,而用完后置null有利于垃圾收集。讓類實(shí)現(xiàn)Cloneable接口,同時(shí)采用工廠模式,將減少類的創(chuàng)建,
每次都是通過(guò)clone()方法來(lái)獲得對(duì)象。另外使用接口也能減少類的創(chuàng)建。對(duì)于成員變量的初始化也應(yīng)盡
量避免,特別是在一個(gè)類派生另一個(gè)類時(shí)。
異常拋出對(duì)性能不利。拋出異常
首先要?jiǎng)?chuàng)建一個(gè)新的對(duì)象。Throwable接口的構(gòu)造函數(shù)調(diào)用名為,fillInStackTrace()的本地(Native)
方法,fillInStackTrace()方法檢查堆棧,收集調(diào)用跟蹤信息。只要有異常被拋出,VM就必須調(diào)整調(diào)用
堆棧,因?yàn)樵谔幚磉^(guò)程中創(chuàng)建了一個(gè)新的對(duì)象。異常只能用于錯(cuò)誤處理,不應(yīng)該用來(lái)控制程序流程。
此外,建議關(guān)閉Debug輸出,盡量少用串行化、同步操作和耗時(shí)昂貴的服務(wù)(如Date())。
1.1.3使用合適的類型
當(dāng)原始類型不能滿足我們要求時(shí),使用復(fù)雜類型。String和StringBuffer的區(qū)別自不必說(shuō)了,是我
們使用最多的類型,在涉及到字符運(yùn)算時(shí),強(qiáng)烈建議使用StringBuffer。在做String匹配時(shí)使用intern()
代替equal()
帶有final修飾符的類是不可派生的,如果指定一個(gè)類為final,則該類所有的方法都是final。
Java編譯器會(huì)尋找機(jī)會(huì)內(nèi)聯(lián)所有的final方法,這將能夠使性能平均提高50%。類的屬性和方式使
用final或者static修飾符也是有好處的。
調(diào)用方法時(shí)傳遞的參數(shù)以及在調(diào)用中創(chuàng)建的臨時(shí)變量都保存在棧(Stack)中,速度較快。所以
盡量使用局部變量。
ArrayList和Vector,HashMap和Hashtable是我們經(jīng)常用到的類,前者不支持同步,后者支持同步,
前者性能更好,大多數(shù)情況下選擇前者。
1.1.4盡量使用pool,buffer和cache
使用pool、buffer和cache能大大提高系統(tǒng)的性能,這在J2EE的大部分技術(shù)中都是適用的。
在WebLogic中就大量使用了池:JDBCConnectionPool、SocketPool、ObjectPool和Thread
Pool。I/O操作中,buffer是必須的,特別是對(duì)大文件的操作,不然容易造成內(nèi)存溢出。字節(jié)操作最快,所以
盡可能采用write(byte[]),BufferedFileOutputStream比BufferedFileWriter要快,因?yàn)镕ileWriter
需要Unicode到Byte的轉(zhuǎn)換。
而后面講到的JDBC、JSP、EJB和JMS我們都非常建議使用buffer和cache。為
HttpServletResponse設(shè)置buffersize,使用wl-cache,緩存在JNDI樹(shù)上獲取的對(duì)象等等。
此外,使用JDK1.4的非阻塞I/O對(duì)性能也有很大提高。
1.2JDBC代碼調(diào)優(yōu)
1.2.1嚴(yán)格資源使用
JDBC代碼調(diào)優(yōu)最大的原則就是使用WebLogic的連接池,而不是自己直連數(shù)據(jù)庫(kù)。在我接觸的很多
自己實(shí)現(xiàn)連接池的項(xiàng)目中,大部分遇到死鎖和連接泄漏的問(wèn)題,最后得不得修改代碼。而WebLogic提供了
功能強(qiáng)大,性能良好的數(shù)據(jù)庫(kù)連接池,我們要做的只是封裝一個(gè)連接管理類,從JNDI樹(shù)上獲取數(shù)據(jù)源并
緩存,得到連接,并提供一系列關(guān)閉數(shù)據(jù)庫(kù)資源的方法。
對(duì)任何資源使用的原則是用完即關(guān),不管是數(shù)據(jù)庫(kù)資源、上下文環(huán)境,還是文件。數(shù)據(jù)庫(kù)資源的
泄漏極易造成內(nèi)存泄漏,乃至系統(tǒng)崩潰。
在使用完數(shù)據(jù)庫(kù)資源后依次關(guān)閉ResultSet,Statement和Connection,而在一個(gè)數(shù)據(jù)庫(kù)連接多次進(jìn)行數(shù)
據(jù)庫(kù)操作時(shí)要特別注意ResultSet和Statement依次關(guān)閉。
try{
//openconnection
pstmt=conn.prepareStatement(strSql1);
pstmt.executeUpdate();
pstmt.close();
pstmt=conn.prepareStatement(strSql2);
rs=pstmt.executeQuery();
while(rs.next()){
//process
}
rs.close();
pstmt.close();
}catch(Exceptione){
//closers,psmt,con
}finally{
//closers,psmt,con
}
1.2.2實(shí)用技巧
在JDBC操作中還有一些小的技巧跟大家分享:由于獲取連接時(shí)默認(rèn)自動(dòng)提交方式,使用
connection.setAutoCommit(false)關(guān)閉
自動(dòng)提交,使用PreparedStatement,批量更新,業(yè)務(wù)復(fù)雜或者大數(shù)據(jù)量操作時(shí)使用存儲(chǔ)過(guò)程,盡量使用
RowSet,此外設(shè)置記錄集讀取緩存FetchSize和設(shè)置記錄集讀取方向FetchDirection對(duì)性能也有一定的提
高。
1.2.3優(yōu)化SQL語(yǔ)句
SQL語(yǔ)句的優(yōu)化牽涉到很多數(shù)據(jù)庫(kù)的知識(shí),需要與索引配合,因此需要DBA對(duì)代碼中的SQL進(jìn)行檢
查php?name=%B2%E2%CA%D4">測(cè)試。常見(jiàn)的,select*不提倡使用,效率極差,建議顯式獲取列,即使是所有字段也應(yīng)羅列,而取
總數(shù)時(shí)使用count(*),為提
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公區(qū)咖啡機(jī)租賃協(xié)議
- 電網(wǎng)工程承包合同
- 環(huán)保設(shè)備物流公司聘用合同條款
- 舞臺(tái)安全承諾書(shū):確保演員安全
- 社會(huì)救助不合格品處理
- 溫暖話題的作文600字合集五篇
- 2022小學(xué)五年級(jí)班級(jí)工作計(jì)劃
- 教師年終述職報(bào)告范文(合集14篇)
- 2025湖北勞動(dòng)的合同范本
- 小學(xué)教師年終總結(jié)六篇
- 曲式與作品分析智慧樹(shù)知到期末考試答案章節(jié)答案2024年內(nèi)蒙古藝術(shù)學(xué)院
- 人工智能與未來(lái)教育智慧樹(shù)知到期末考試答案章節(jié)答案2024年麗水學(xué)院
- 2024年中考英語(yǔ)二輪復(fù)習(xí):語(yǔ)法填空講解
- 數(shù)據(jù)結(jié)構(gòu)智慧樹(shù)知到期末考試答案章節(jié)答案2024年中央財(cái)經(jīng)大學(xué)
- 中國(guó)血脂管理指南(基層版2024年)
- 《地方導(dǎo)游基礎(chǔ)知識(shí)》期末考試試卷及答案(2卷)
- 婦科腫瘤微創(chuàng)手術(shù)
- 前列腺癌2024治療指南
- 生態(tài)學(xué)概論智慧樹(shù)知到期末考試答案2024年
- 鄉(xiāng)鎮(zhèn)綜治工作業(yè)務(wù)培訓(xùn)
- 鋼管架搭設(shè)施工方案
評(píng)論
0/150
提交評(píng)論