六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

Java優化性能技巧集錦(中)

[摘要]二、J2EE篇   前面介紹的改善性能技巧適合于大多數Java應用,接下來要討論的問題適合于使用JSP、EJB或JDBC的應用。   2.1 使用緩沖標記   一些應用服務器加入了面向JSP的緩沖標記功能。例如,BEA的WebLogic Server從6.0版本開始支持這個功能,Open Symp...
二、J2EE篇

  前面介紹的改善性能技巧適合于大多數Java應用,接下來要討論的問題適合于使用JSP、EJB或JDBC的應用。

  2.1 使用緩沖標記

  一些應用服務器加入了面向JSP的緩沖標記功能。例如,BEA的WebLogic Server從6.0版本開始支持這個功能,Open Symphony工程也同樣支持這個功能。JSP緩沖標記既能夠緩沖頁面片斷,也能夠緩沖整個頁面。當JSP頁面執行時,如果目標片斷已經在緩沖之中,則生成該片斷的代碼就不用再執行。頁面級緩沖捕獲對指定URL的請求,并緩沖整個結果頁面。對于購物籃、目錄以及門戶網站的主頁來說,這個功能極其有用。對于這類應用,頁面級緩沖能夠保存頁面執行的結果,供后繼請求使用。

  對于代碼邏輯復雜的頁面,利用緩沖標記提高性能的效果比較明顯;反之,效果可能略遜一籌。

  請參見《用緩沖技術提高JSP應用的性能和穩定性》。

  2.2 始終通過會話Bean訪問實體Bean

  直接訪問實體Bean不利于性能。當客戶程序遠程訪問實體Bean時,每一個get方法都是一個遠程調用。訪問實體Bean的會話Bean是本地的,能夠把所有數據組織成一個結構,然后返回它的值。

  用會話Bean封裝對實體Bean的訪問能夠改進事務管理,因為會話Bean只有在到達事務邊界時才會提交。每一個對get方法的直接調用產生一個事務,容器將在每一個實體Bean的事務之后執行一個“裝入-讀取”操作。

  一些時候,使用實體Bean會導致程序性能不佳。如果實體Bean的唯一用途就是提取和更新數據,改成在會話Bean之內利用JDBC訪問數據庫可以得到更好的性能。

  2.3 選擇合適的引用機制

  在典型的JSP應用系統中,頁頭、頁腳部分往往被抽取出來,然后根據需要引入頁頭、頁腳。當前,在JSP頁面中引入外部資源的方法主要有兩種:include指令,以及include動作。

  include指令:例如。該指令在編譯時引入指定的資源。在編譯之前,帶有include指令的頁面和指定的資源被合并成一個文件。被引用的外部資源在編譯時就確定,比運行時才確定資源更高效。

  include動作:例如。該動作引入指定頁面執行后生成的結果。由于它在運行時完成,因此對輸出結果的控制更加靈活。但時,只有當被引用的內容頻繁地改變時,或者在對主頁面的請求沒有出現之前,被引用的頁面無法確定時,使用include動作才合算。

  2.4 在部署描述器中設置只讀屬性

  實體Bean的部署描述器允許把所有get方法設置成“只讀”。當某個事務單元的工作只包含執行讀取操作的方法時,設置只讀屬性有利于提高性能,因為容器不必再執行存儲操作。

  2.5 緩沖對EJB Home的訪問

  EJB Home接口通過JNDI名稱查找獲得。這個操作需要相當可觀的開銷。JNDI查找最好放入Servlet的init()方法里面。如果應用中多處頻繁地出現EJB訪問,最好創建一個EJBHomeCache類。EJBHomeCache類一般應該作為singleton實現。

  2.6 為EJB實現本地接口

  本地接口是EJB 2.0規范新增的內容,它使得Bean能夠避免遠程調用的開銷。請考慮下面的代碼。

  PayBeanHome home = (PayBeanHome)

  javax.rmi.PortableRemoteObject.narrow
  (ctx.lookup ("PayBeanHome"), PayBeanHome.class);

  PayBean bean = (PayBean)

  javax.rmi.PortableRemoteObject.narrow
  (home.create(), PayBean.class);

  第一個語句表示我們要尋找Bean的Home接口。這個查找通過JNDI進行,它是一個RMI調用。然后,我們定位遠程對象,返回代理引用,這也是一個RMI調用。第二個語句示范了如何創建一個實例,涉及了創建IIOP請求并在網絡上傳輸請求的stub程序,它也是一個RMI調用。

  要實現本地接口,我們必須作如下修改:

  方法不能再拋出java.rmi.RemoteException異常,包括從RemoteException派生的異常,比如TransactionRequiredException、TransactionRolledBackException和NoSuchObjectException。EJB提供了等價的本地異常,如TransactionRequiredLocalException、TransactionRolledBackLocalException和NoSuchObjectLocalException。

  所有數據和返回值都通過引用的方式傳遞,而不是傳遞值。

  本地接口必須在EJB部署的機器上使用。簡而言之,客戶程序和提供服務的組件必須在同一個JVM上運行。

  如果Bean實現了本地接口,則其引用不可串行化。

  請參見《用本地引用提高EJB訪問效率》。



主站蜘蛛池模板: 亚洲黄色一区二区 | 特级做a爰片毛片免费看一区 | 中文字幕在线播放不卡 | 探花网站 | 欧洲性大片xxxxx久久久 | 日本免费色网站 | 五月婷婷社区 | 欧美综合区 | 亚洲第一黄 | 在线观看永久免费视频网站 | 亚洲欧美日韩综合久久久久 | 三级黄色片免费观看 | 特级做a爰片毛片免费看 | 亚洲九九色 | 中文字幕人成乱在线视频 | 日韩欧美高清在线 | 欧美又粗又长 | 天天狠天天插 | 日韩视频高清 | 手机av在线播放 | 色综合色综合色综合 | 日本天堂免费 | 神兵小将第一部 | 亚洲精品国产综合久久一线 | 越南一级淫片高清视频 | 青草悠悠视频在线观看 | 天天干天天色天天干 | 亚洲日本欧美日韩高观看 | 一二三四影视在线看片 | 欧美性猛交一区二区三区 | 我的秘密饭店 电视剧免费观看 | 思思99re66在线精品免费观看 | 伊人久久大香网 | 天天综合久久久网 | 欧美亚洲丝袜 | 色妇色综合久久夜夜 | 热久久久久 | 日韩美女在线看免费观看 | 欧美行性性性o00x | 日韩精品中文字幕一区三区 | 日韩一区国产二区欧美三区 |