我注意到在同一個tomcat中的兩個servlet和同一個主機上的兩個獨立的tomcats之間的處理時間有一個主要區別。這些servlet使用http進行通信。在同一個tomcat或JVM中,tomcat或java是否有一些優化http通信的機制。我試圖確認這一觀察與我正在運行的主機無關。在tomcat中處理io
0
A
回答
1
這可能是阻塞和非阻塞I/O之間的差異。
Tomcat使用多線程模型:具有用於處理請求的線程池和用於傳入請求的隊列。服務器將線程分配給傳入的處理請求,執行任務,發送迴應,並將線程返回給池。隊列處理備份的請求。
Netty使用的非阻塞IO有些不同。
也許這兩個請求在被同一個Tomcat處理時正在排隊。
0
關於這些測試的更多信息。這兩個測試都使用Apache Tomcat版本6.0.20和jdk1.6.0_23在SunOS 5.10上運行。 http傳輸可能涉及相當大的文件 - 5M。線程處理可能會解釋,但是由於時序差異超過10倍,我懷疑沒有數據必須從JVM傳出。某種形式的阻塞vs非阻塞可能適合時間差異。
相關問題
- 1. 處理IO操作
- 2. 如何處理IO(Maybe(IO(Maybe t)))type?
- 3. IO異常處理:26
- 4. 異常處理和IO
- 5. Haskell。非IO異常處理
- 6. Socket io事件處理ios
- 7. 縮短代碼處理IO
- 8. 試圖處理IO操作
- 9. Tomcat會話處理
- 10. 處理tomcat停止
- 11. 處理信號而不會中斷IO
- 12. Haskell:非IO monads中的異常處理
- 13. 處理IO vs Haskell中的純代碼
- 14. Java中的大型優化IO處理
- 15. 如何在Spring中處理Tomcat的MaxUploadSizeExceededException?
- 16. 在java中處理X-FORWARDED-PROTO apache-tomcat
- 17. Tomcat 7異步處理
- 18. Tomcat的處理時間
- 19. Tomcat默認會話處理
- 20. Tomcat:處理Servlet異常
- 21. Tomcat會話過期處理
- 22. perl用於處理字符串的IO事件處理程序
- 23. 無法使用IO ::處理或IO ::文件
- 24. Apache commons io Tailer:處理日誌旋轉
- 25. 文件IO和列表處理
- 26. 多處理期間的IO錯誤
- 27. 並行處理密集IO功能
- 28. 處理程序數據IO吞吐量?
- 29. 哈斯克爾處理[IO字符串]
- 30. NodeJS如何處理異步文件IO?
你能分享這個發現嗎? –
沒有足夠的信息知道。 –
這是什麼操作系統?在單獨的JVM場景中,您是使用環回地址還是真實接口? (這可能不重要,但值得在測試時進行測試)。我試圖想到在上下文切換方面的差異或僅有一個JVM而不是兩個競爭資源的效率,但這些依賴於很多你的工作量。 – Szocske