亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

通過JSP預編譯消除性能瓶頸

2024-09-05 00:20:36
字體:
來源:轉載
供稿:網友

  歡迎來到“管理角”這個版,新一期的月刊專欄專注于 weblogic 服務器的管理、配置、處理和開發方面。

  開辟這個專欄的目的是為了向大家介紹在使用weblogic sever時,能普遍用到的非j2ee開發方面的問題。開發者和管理者同樣會發現這個專欄非常有價值,因為這些文章既適用于開發又適用于最終產品的應用。此外,它很大程度上利用了來自于該領域和工程實驗室的經驗,它提供了對實際問題的詳細解答。

  jsp預編譯的必要性

  本文著眼于移除潛在的系統性能瓶頸,它通過解決一個最普通的問題??在服務器運行時間中的jsp (javaserver page)編譯的系統開銷問題,這個問題困擾著幾乎所有的j2ee發展計劃。雖然jsp是在j2ee應用范圍內呈現動態html視圖的理想選擇,但在某種程度上它們會影響性能,這比錯誤的更令人討厭,給人的第一感覺是該程序很慢。

  根據j2ee規范,jsp主要是html文件,在它里面包含著java代碼用來和其他的系統組件進行交互以及動態的顯示信息。規范規定所有的j2ee編譯應用服務器應當支持jsp,客戶請求一個特定的jsp,將:

  ● 轉換jsp從html格式成為servlet類型的java類(java源格式),用簡寫的jsp符號代替完全符合規定的java語法

  ● 將新產生的java源文件編譯成.class字節碼形式

  ● 在新編譯的類上執行適當的接口方法并且對客戶端請求返回響應。

  雖然從發展的觀點來看對于在表示層內管理動態html的產生這是最好的途徑,但它影響到服務器的運行時間環境,要求jsp被解析、轉變成java代碼,并且在它去處理一個特定的客戶端請求之前被編譯。對最終用戶明顯的影響是,一個響應將會被延遲知道給定的jsp文件被編譯通過??紤]到一個特定的用戶請求可能用到兩個或多個jsp文件,因此編譯狀態必需的時間增加了很多倍。

|||

  對第一個請求一個特定的jsp頁面并且迫使被請求的文件進行初始編譯的終端用戶,會感覺應用程序很慢并且沒有響應。 雖然這樣的感覺可能存在,但是對于特定的jsp文件的編譯過程通常在給定的應用服務器虛擬機實例的生命周期中完成一次。 因此,它對性能總體上的影響被考慮成一種障礙,而不是對應用程序總響應時間的一個嚴重的障礙。然而,在生產環境中為了傳送基于jsp的j2ee應用程序的生產系統,必須克服jsp的缺陷并且對最終用戶進行透明的編譯。

  這樣,生產環境如何能受益于jsp文件,還要避免運行時編譯的性能打擊?答案是簡單的:執行一個一般作為jsp預編譯的過程。 借用jsp預編譯,已經被預編譯的在脫機環境中的jsp文件和他們的編譯結果被部署在生產環境中。如果結果類文件的預編譯和部署正確的完成,應用程序服務器將會為jsp文件運行先前的編譯類,并且在運行中將不強制對特定的請求進行再編譯。 這樣產生了一種情況,應用程序的操作避免了多余的編譯開銷,允許系統管理員移除對系統總性能會造成影響的一個已知的瓶頸。

  不同的方法論和途徑

  沒有人懷疑jsp預編譯的承諾聽起來令人興奮。 然而,為了要實現這樣的承諾,你必須首先了解能夠執行這個技術的不同途徑,以及它們各自優點和缺點。

  運行應用程序進行強制預編譯

  用于實現jsp預編譯最顯而易見的方法是在產品發布前,通過請求在應用程序中的所有可能的jsp頁面,因此編譯在終端用戶訪問站點前完成。它既可以通過第一次人工瀏覽整個站點時完成也可以通過從測試系列應用程序或其他腳本語言的客戶端(例如loadrunner 或 silkperformer)發動自動請求來實現。 當使用這種方法(可能是所有的jsp預編譯方法中的最簡單的而又較下策的一個方法)時,他的缺點很快就顯現出來了。也許最大的缺點是很難實現跨集群環境,在集群環境中,用該方法對于單一節點的實例發送的請求依集群中的節點數量成倍的增加。而且,當這個集群是由一個或更多的web服務器或硬件負載權衡者來代理時,更難保證在一個集群的環境中每個服務器實例都進行jsp預編譯,因為一般沒有方法來搞清代理最初把請求轉到哪個應用服務器。此外,在應用服務器每次重啟時,這個方法必須執行,當站點很小時,不能一次實現所有的編譯就會很痛苦。因此,我們不推薦這種jsp預編譯的方法。

|||

商業源碼熱門下載www.html.org.cn

  使用編譯工具來實現預編譯

  因為人工執行一個站點應用程序來強制jsp預編譯在真實的產品環境中是一個較大的缺點,在預編譯運行期間選擇編譯jsp,使其變成為servlets變得更令人心動。幸運地,wls提供了二個方法。第一種方法在服務器啟動部署一個特定的web應用程序的時候執行預編譯(declarative預編譯),第二種方法是命令行java工具(weblogic.jspc)允許過程在完全脫機的情況下處理(程序方式的預編譯)。兩種方法都有它們的優點,程序方式的預編譯在兩者中有更靈活的選項,并且提供更讓人無法抗拒的理由來使用它。

  declarative預編譯

  對于在wls下公布的預編譯,一個特定的web應用程序(獨立的或者作為ear的一部分)能夠被配置,因此所有的jsp在應用程序部署(服務器啟動時)和重新部署(運行時)期間里被預編譯。對web-inf/ weblogic.xml部署描述符要做必要的配置變化,使用預編譯指令,如下:

<weblogic-web-app>

<jsp-descriptor>
<jsp-param>
<param-name>precompile</param-name>
<param-value>true</param-value>
</jsp-param>
</jsp-descriptor>

</weblogic-web-app>

  在一個特定的web應用程序上進行部署(或重新部署),如果上述的參數被設定成真, wls 將會在war內嘗試預編譯所有的jsp文件,在程序中從 web 應用程序的根目錄下循環的運行它的方法( 略過web-inf) 。以. jsp 或 .jsp為擴展名的文件都變成了編譯的對象。 被編譯后的文件被以適當的包目錄結構形式被放置在web 應用程序的臨時工作目錄下面(默認在web-inf子目錄中,除非在 weblogic.xml 里有特別說明)。

|||

  這個方法是到目前為止進行jsp預編譯最方便的途徑(“flick-a-switch” 途徑),他有許多指出來毫無意義的缺點。如果一個錯誤在jsp的編譯期間或在部署(或重新部署) 的時候發生,web 應用程序的預編譯將會在例外處暫停。另外,如果在一個特定的web應用程序里面有許多jsp文件的情況,declarative預編譯顯著的影響著部署時間,阻斷部署直到所有的文件都被編譯。對于大型的應用程序,當出現數以百計的jsp 文件以declarative預編譯被執行的時候,這種部署時間趨向以分鐘來計算 (在某些情況10到15分鐘,其他情況可能更長時間)。設想開始一個服務器實例,在一個特定的web應用程序周期內進入部署狀態用declarative 預編譯激活。如果在應用內有很多的jsp文件以及部署,接近完成時就已經花費了大量的時間,在編譯期間由于拋出一個例外而突然失敗,當然會引起挫折感。雖然起先看起來比較方便,但declarative 編譯對生產系統管理造成重大的風險,因此應該在經過慎重的考慮后再使用它。

  程序方式的預編譯

  在wls下最可靠的預編譯jsp的方法是使用java命令行,weblogic.jspc,它位于wls安裝的lib目錄之下的weblogic.jar文件中。這個工具允許開發者在發展階段和在部署前解決編譯時間問題的時候編譯需要的jsp文件。它也為生產系統提供一個有能力實現jsp預編譯的管理員。這種用法的主要好處是:

  ● 文件可以被預編譯一次然后可以被多次部署。(這不被服務器實例的重復利用所影響)

  ● 編譯時的例外可以被預先解決而不影響部署。

  ● 類可以通過集群部署。

  使用weblogic.jspc的缺點是需要人工干涉,并且它在開發時并當在jsp文件變得過時的時候必須被重新運行。然而,考慮到前面的兩個方法的討論,我們幾乎不能將這種不方便當成該方法的一個缺點,因此推薦它作為最可靠和最靈活的機制來實現jsp預編譯。

|||
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美在线免费| 欧美成人免费观看| 日韩性xxxx爱| 中文日韩在线观看| 免费91麻豆精品国产自产在线观看| 欧美综合激情网| 欧美电影免费观看大全| 久久视频中文字幕| 亚洲国产高清高潮精品美女| 亚洲人精品午夜在线观看| 国产欧美精品一区二区三区-老狼| 亚洲自拍偷拍在线| 国产精品极品美女粉嫩高清在线| 欧美成人激情图片网| 亚洲а∨天堂久久精品9966| 国产精品无av码在线观看| 久久久精品视频在线观看| 国产亚洲激情视频在线| 久久久久免费精品国产| 欧美日本精品在线| 欧美视频不卡中文| 国产精品美乳在线观看| 国产成人aa精品一区在线播放| 狠狠久久五月精品中文字幕| 日本精品中文字幕| 91精品在线观| 欧美成人精品影院| 国产99久久精品一区二区永久免费| 欧美性xxxx极品hd满灌| 日韩资源在线观看| 26uuu另类亚洲欧美日本一| 亚洲图片欧美日产| 欧美午夜片欧美片在线观看| 欧美视频中文字幕在线| 国产丝袜一区二区三区免费视频| 久久深夜福利免费观看| 亚洲人成电影网| 91av成人在线| 国产精品成熟老女人| 欧美日韩亚洲网| 欧美成人激情图片网| 91中文在线观看| 国产成人精品视频在线| 国产一区二区三区高清在线观看| 欧美精品一本久久男人的天堂| 日本国产欧美一区二区三区| 日韩va亚洲va欧洲va国产| 日韩av观看网址| 欧美性少妇18aaaa视频| 日韩精品在线私人| 日韩精品视频观看| 亚洲第一区在线观看| 国产精品私拍pans大尺度在线| 久久成人免费视频| 97视频在线观看免费| 国产精品久久久久久久av大片| 全色精品综合影院| 精品中文字幕视频| 一本大道久久加勒比香蕉| 亚洲欧美一区二区激情| 两个人的视频www国产精品| 日韩电视剧在线观看免费网站| 国产成人精品一区| 欧美性受xxxx白人性爽| 亚洲免费精彩视频| 亚洲福利视频免费观看| 日韩精品视频免费在线观看| 色综合久久天天综线观看| 国产精品自拍视频| 欧美亚洲在线播放| 啊v视频在线一区二区三区| 中文字幕日韩av电影| 日韩精品视频在线免费观看| 91久久精品国产91久久性色| 亚洲男人天天操| 欧美国产亚洲精品久久久8v| 亚洲精品视频网上网址在线观看| 6080yy精品一区二区三区| 亚洲社区在线观看| 都市激情亚洲色图| 精品久久久久久久久久久| 久操成人在线视频| 日韩中文字幕在线观看| 亚洲欧美中文另类| 亚洲欧美在线免费| 亚洲欧美综合另类中字| 欧美午夜激情视频| 国产啪精品视频| 狠狠色狠狠色综合日日五| 亚洲天堂av在线播放| 日韩在线视频中文字幕| 国产裸体写真av一区二区| 热久久这里只有| 久久精品视频在线| 午夜精品美女自拍福到在线| 久久影视免费观看| 亚洲国语精品自产拍在线观看| 成人免费网站在线观看| 亚洲九九九在线观看| 日本伊人精品一区二区三区介绍| 北条麻妃一区二区在线观看| 538国产精品视频一区二区| 日本sm极度另类视频| 国产精品av在线播放| 成人av电影天堂| 欧美激情一区二区三区高清视频| 亚洲色图校园春色| 国产成人涩涩涩视频在线观看| 亚洲女性裸体视频| 亚洲伊人一本大道中文字幕| 欧美成人精品xxx| 国产精品视频播放| 国产亚洲aⅴaaaaaa毛片| 国产成人一区二| 欧美资源在线观看| 欧美亚洲第一区| 午夜精品三级视频福利| 中文字幕亚洲综合久久| 98精品国产自产在线观看| 亚洲精品一区二区三区不| 亚洲黄页视频免费观看| 亚洲国产精品va在线| 揄拍成人国产精品视频| 国产成人激情小视频| 亚洲精品日韩丝袜精品| 国产一区av在线| 国产精品美乳在线观看| 国产精品人成电影在线观看| 欧美综合在线第二页| 亚洲丝袜在线视频| 日本亚洲精品在线观看| 久久韩国免费视频| 欧美日韩福利在线观看| 亚洲va欧美va国产综合剧情| 亚洲免费视频观看| 另类少妇人与禽zozz0性伦| 深夜福利亚洲导航| 久久久精品中文字幕| 欧美精品免费播放| 亚洲欧美国产精品专区久久| 亚洲人成网站在线播| 狠狠做深爱婷婷久久综合一区| 91中文字幕一区| 国产精品成人品| 久久天天躁夜夜躁狠狠躁2022| 亚洲成人激情小说| 国产精品私拍pans大尺度在线| 欧美激情一区二区三区成人| 亚洲综合最新在线| 国产成人av在线| 日韩在线视频播放| 精品国产户外野外| 国产小视频国产精品| 亚洲欧美激情另类校园| 欧美亚洲日本网站| 成人黄色片在线| 九九热精品视频在线播放| 一本色道久久综合狠狠躁篇怎么玩| 日韩欧美视频一区二区三区| 91精品久久久久久综合乱菊| 欧美高清视频一区二区| 欧美整片在线观看| 97在线观看视频国产| 久久久91精品|