Eva & TomcatJSP是由許多部份的小功能, 包括 TagLib, JSTL, EL 等, 所組成. 而對於其中所使用到的EL (Expression Language), Tomcat 並不會將它們動態編譯成可執行程式, 而只是會以 Java Reflection 的技巧去處理. 現在 Eva 能將它們也改成以類似動態編譯的方法去處理, 並期望 EL 在處理 Bean 物件的操作, 與函式的呼叫時的效率能更快.
在左方的兩張圖片, 分別表示在 Eva 介入前後, Tomcat 內某個富含 EL 的 JSP 檔案的回應效能. 其中上圖是未修改過的 Tomcat, 在使用 Jmeter 對其進行壓力測試時的反應. 而下圖為 Eva 修改過後的 Tomcat 在同樣的條件下, 進行壓力測試的反應. 這裡的同樣條件指的是, Server是用同一台機器, 同樣在休息10分鐘以上的剛開機的情況, 不執行其它軟體, 只執行 Tomcat, 但排除測試網頁的第 1 次執行, 因為第 1 次執行時 Eva 會特別去做一些相關的動態編譯, 在樣的情況下所做的壓力測試. 而從測試結果看來, 在 Eva 的介入之後, Tomcat 對於 EL 的處理速度有可觀測到的進歩. 而除了處理 EL 的細節外, Eva 並未對其整體架構做修改, 以換取效能, 所以原本那些可用於 Tomcat 的校調技巧或是可執行的軟體, 都應仍可正常執行. 下載我們所修改的 Tomcat 的位置為 :
而那個用壓力測試, 內含複雜 EL 的 JSP 網頁, 在執行修改過後的Tomcat 之後, 可以經由以下網址瀏覽 :
http://localhost:8080/examples/jsp/jsp2/simpletag/article.jsp |