下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第第頁BEAWebLogic平臺下J2EE調(diào)優(yōu)攻略1BEAWebLogic平臺下J2EE調(diào)優(yōu)攻略1
發(fā)表于:2023-08-07來源::點擊數(shù):標(biāo)簽:WebLogic平臺攻略接口BEA對象
BEAWebLogic平臺下J2EE調(diào)優(yōu)攻略第一章應(yīng)用程序調(diào)優(yōu)1.1.1通用代碼調(diào)優(yōu)1.1.2減小沒有必要的操作對象的創(chuàng)建是個很昂貴的工作,所以我們應(yīng)當(dāng)盡量減少對象的創(chuàng)建,在需要的時候聲明它,初始化它,不要重復(fù)初始化一個對象,盡量能做到再使用,而用完后置null
BEAWebLogic平臺下J2EE調(diào)優(yōu)攻略第一章應(yīng)用程序調(diào)優(yōu)
1.1.1通用代碼調(diào)優(yōu)
1.1.2減小沒有必要的操作
對象的創(chuàng)建是個很昂貴的工作,所
以我們應(yīng)當(dāng)盡量減少對象的創(chuàng)建,在需要的時候聲明它,初始化它,不要重復(fù)初始化一個對象,盡量能做到
再使用,而用完后置null有利于垃圾收集。讓類實現(xiàn)Cloneable接口,同時采用工廠模式,將減少類的創(chuàng)建,
每次都是通過clone()方法來獲得對象。另外使用接口也能減少類的創(chuàng)建。對于成員變量的初始化也應(yīng)盡
量避免,特別是在一個類派生另一個類時。
異常拋出對性能不利。拋出異常
首先要創(chuàng)建一個新的對象。Throwable接口的構(gòu)造函數(shù)調(diào)用名為,fillInStackTrace()的本地(Native)
方法,fillInStackTrace()方法檢查堆棧,收集調(diào)用跟蹤信息。只要有異常被拋出,VM就必須調(diào)整調(diào)用
堆棧,因為在處理過程中創(chuàng)建了一個新的對象。異常只能用于錯誤處理,不應(yīng)該用來控制程序流程。
此外,建議關(guān)閉Debug輸出,盡量少用串行化、同步操作和耗時昂貴的服務(wù)(如Date())。
1.1.3使用合適的類型
當(dāng)原始類型不能滿足我們要求時,使用復(fù)雜類型。String和StringBuffer的區(qū)別自不必說了,是我
們使用最多的類型,在涉及到字符運算時,強烈建議使用StringBuffer。在做String匹配時使用intern()
代替equal()
帶有final修飾符的類是不可派生的,如果指定一個類為final,則該類所有的方法都是final。
Java編譯器會尋找機會內(nèi)聯(lián)所有的final方法,這將能夠使性能平均提高50%。類的屬性和方式使
用final或者static修飾符也是有好處的。
調(diào)用方法時傳遞的參數(shù)以及在調(diào)用中創(chuàng)建的臨時變量都保存在棧(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是必須的,特別是對大文件的操作,不然容易造成內(nèi)存溢出。字節(jié)操作最快,所以
盡可能采用write(byte[]),BufferedFileOutputStream比BufferedFileWriter要快,因為FileWriter
需要Unicode到Byte的轉(zhuǎn)換。
而后面講到的JDBC、JSP、EJB和JMS我們都非常建議使用buffer和cache。為
HttpServletResponse設(shè)置buffersize,使用wl-cache,緩存在JNDI樹上獲取的對象等等。
此外,使用JDK1.4的非阻塞I/O對性能也有很大提高。
1.2JDBC代碼調(diào)優(yōu)
1.2.1嚴(yán)格資源使用
JDBC代碼調(diào)優(yōu)最大的原則就是使用WebLogic的連接池,而不是自己直連數(shù)據(jù)庫。在我接觸的很多
自己實現(xiàn)連接池的項目中,大部分遇到死鎖和連接泄漏的問題,最后得不得修改代碼。而WebLogic提供了
功能強大,性能良好的數(shù)據(jù)庫連接池,我們要做的只是封裝一個連接管理類,從JNDI樹上獲取數(shù)據(jù)源并
緩存,得到連接,并提供一系列關(guān)閉數(shù)據(jù)庫資源的方法。
對任何資源使用的原則是用完即關(guān),不管是數(shù)據(jù)庫資源、上下文環(huán)境,還是文件。數(shù)據(jù)庫資源的
泄漏極易造成內(nèi)存泄漏,乃至系統(tǒng)崩潰。
在使用完數(shù)據(jù)庫資源后依次關(guān)閉ResultSet,Statement和Connection,而在一個數(shù)據(jù)庫連接多次進行數(shù)
據(jù)庫操作時要特別注意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實用技巧
在JDBC操作中還有一些小的技巧跟大家分享:由于獲取連接時默認(rèn)自動提交方式,使用
connection.setAutoCommit(false)關(guān)閉
自動提交,使用PreparedStatement,批量更新,業(yè)務(wù)復(fù)雜或者大數(shù)據(jù)量操作時使用存儲過程,盡量使用
RowSet,此外設(shè)置記錄集讀取緩存FetchSize和設(shè)置記錄集讀取方向FetchDirection對性能也有一定的提
高。
1.2.3優(yōu)化SQL語句
SQL語句的優(yōu)化牽涉到很多數(shù)據(jù)庫的知識,需要與索引配合,因此需要DBA對代碼中的SQL進行檢
查php?name=%B2%E2%CA%D4">測試。常見的,select*不提倡使用,效率極差,建議顯式獲取列,即使是所有字段也應(yīng)羅列,而取
總數(shù)時使用count(*),為提
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東理工學(xué)院《西方思想經(jīng)典導(dǎo)讀》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東警官學(xué)院《C設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東江門中醫(yī)藥職業(yè)學(xué)院《催化材料導(dǎo)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東機電職業(yè)技術(shù)學(xué)院《藥物結(jié)構(gòu)解析》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東環(huán)境保護工程職業(yè)學(xué)院《電子競技場館運營與管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工業(yè)大學(xué)《音樂學(xué)科課程與教學(xué)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東第二師范學(xué)院《計算流體力學(xué)與傳熱學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛州職業(yè)技術(shù)學(xué)院《建筑信息模型》2023-2024學(xué)年第一學(xué)期期末試卷
- 學(xué)干培訓(xùn)課件
- 贛南衛(wèi)生健康職業(yè)學(xué)院《楷書技法》2023-2024學(xué)年第一學(xué)期期末試卷
- 北京市海淀區(qū)2021-2022學(xué)年第一學(xué)期四年級期末考試語文試卷(含答案)
- 哈爾濱市城市規(guī)劃管理技術(shù)規(guī)定
- 用人單位終止(解除)勞動合同證明書參考
- 天津工業(yè)大學(xué)《工程力學(xué)》2017-2018-1期末試卷及答案
- 能力素質(zhì),勝任力模型
- 100以內(nèi)不進位不退位加減法200道
- app界面設(shè)計(課堂PPT)
- 工程總承包EPC實施方案
- 開展創(chuàng)新型課題QC小組活動實施指導(dǎo)意見
- 皮具工藝生產(chǎn)流程(共6頁)
- 胖東來超市部收銀員服務(wù)標(biāo)準(zhǔn)
評論
0/150
提交評論