[英]First response is slow Tomcat
我制作了一個由 Tomcat 托管的 Java Web 應用程序。 它可以在這個URL上找到。
我遇到的問題是,每當我第一次訪問該頁面時,大約需要 10 秒,而每次訪問后僅需要 100-500 毫秒。 我會說速度的提高是由於瀏覽器緩存,但實際上並非如此,當我也刷新緩存時( ctrl
+ shift
+ r
)我得到了同樣的快速響應。
然后過了一段時間,大約 5 分鍾,我再次訪問該頁面,它又變慢了。
您可以通過將搜索參數值更改為例如: 1050
、 1051
、 1052
、 2670
、 4000
、 2300
、 2200
來嘗試對提供的 URL 進行一些測試。
我發現的另一個有趣的事實是,無論有效載荷有多大(將 1050 與 2300 進行比較),時間幾乎總是相同的。 9-10 秒。 所以我假設像 Java Server 這樣的東西必須准備好,這需要時間。
編輯:
我首先認為它可能與 Java/Tomcat 必須加載一些資源有關,然后在一段時間后再次加載 +-3-5 分鍾,因為出於某種原因它卸載了它。 但正如我上面所寫,即使我更改了 URL 查詢字符串(這會在執行期間導致不同的 SQL 查詢),它也會再次加載很長時間。 這個問題可以與數據庫有關嗎? 我正在使用 MySQL。
編輯2:
它更快的原因很可能是服務器緩存。 我有 95% 的把握,那是因為我做了幾個實驗,例如在 2 台計算機上嘗試它等(不,它不是瀏覽器緩存)。 然后我意識到,如果它只有在緩存時才快,那么實際的.executeQuery
代碼行需要這么長時間。 即使通過WorkBench
等客戶端發出的完全相同的請求僅需 0.285 秒,也需要 10 秒。 因此,我將嘗試使用PreparedStatement
或進一步實驗。
內容大小為 200kB。 您需要在前端和后端對其進行優化。
主要問題出在您的后端。 檢查為什么需要這么長時間。
在前端,您可以啟用 gzip 壓縮。 查看 tomcat 文檔了解如何操作。 這將減少下載的大小。
由於瀏覽器緩存,第二次對您來說可能更快。 檢查 Firebug 中的響應代碼,如果響應是 304,則它被緩存。 響應 200 表示它已從服務器加載。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.