我的Java應用程序的功能是提供參考數據(基本上從XML文件加載大量數據到哈希映射),因此我們要求從這樣的數據hashmap基於一個id,我們有這樣的多個有不同的業務數據集的地圖。的問題是,當我試圖執行用於相同的請求多次Java應用程序,響應時間是不同的像31毫秒,過48ms 72ms的,120毫秒,63毫秒等因此存在最小和採取最大時間之間的相當大的差距執行完成。理想情況下,我希望響應時間是63ms,65ms,61ms,70ms,61ms,但在我的情況下,對於相同請求的響應時間的變化是巨大的。我曾使用過一個opensource配置文件來了解是否有任何額外的方法執行或內存泄漏,但根據我的理解,這沒有問題。請讓我知道可能是什麼原因,我該如何解決這個問題。響應時間是不同的多個執行的應用程序與相同的請求性能問題
1
A
回答
2
可能有多方面的原因:
是您的Java應用程序重新啓動,每次運行?如果不是,那可能是垃圾收集器在不幸的時間裏踢了。如果是這樣,JVM啓動時間可能會導致變化。
是其他任何機器上運行?
磁盤緩存在某些情況下是「熱身」的,但在其他情況下卻不會?也就是說,是否最近訪問過這些文件,以便它們仍在內存中?
如果這是一個聯網的應用程序,測量過程中是否有任何網絡活動?
如果涉及遠程計算機(例如數據庫服務器或文件服務器),那麼上述方法是否也適用於該計算機?
使用一個分析器來找出哪一段代碼負責時間的變化。
0
如果不運行實時系統,那麼你就不能肯定這將在一定時間內執行。
操作系統不斷地做其他的事情,大多是日常任務,並提供系統等服務。這很容易使您的系統其他部分減速50ms。
也有可能是你需要等待IO的時間。如硬盤或網絡通信。
除此之外,還有一個事實,即您的JVM不做任何實時承諾。這可能意味着垃圾收集器貫穿始終。這對正常應用程序的影響非常小,但是如果您創建並忘記了很多對象(如加載大量或大型文件時可能會這樣做),則效果會很大。
最後它可以是你的算法(你是否每次運行相同的數據?)如果你有不同的數據,你可以有不同的執行時間。
相關問題
- 1. 多個請求,相同的響應
- 2. 相同的請求不同的響應
- 3. AJAX問題:多個不同的請求返回相同的響應
- 4. 通過應用程序同時執行相同程序包的多個實例?
- 5. 使用JMeter執行的查詢的響應時間與在不同源上執行相同查詢時的響應時間不同
- 6. 如何根據是否已回覆,針對相同的多個請求響應不同的響應?
- 7. 使用不同url的Web應用程序的響應時間
- 8. 多個請求單個響應同步
- 9. Java應用程序不能同時提供兩個請求
- 10. Iphone - 多個應用程序,不同的應用程序ID,相同的令牌
- 11. 所有/許多應用程序的相同請求映射表
- 12. 使用Phonegap應用程序執行ajax請求的問題
- 13. 發送多個響應在邏輯應用程序相同的要求:ActionResponseAlreadyDefined
- 14. Yii2響應不同格式請求的相同動作
- 15. 如何處理映射到相同響應的不同請求?
- 16. 不同的執行時間還是相同的不同選項?
- 17. 不同應用程序池下相同Web服務的問題
- 18. 兩個MySQL請求在同一時間 - 性能問題
- 19. 基準Django應用程序與許多同時請求,如ab
- 20. 以相同的順序顯示AJAX響應,而不使用同步請求
- 21. 多個應用程序的條件的同步請求
- 22. 同時對多個請求進行故障響應
- 23. 具有相同框架的兩個應用程序不能同時運行
- 24. iTunes思考兩個不同的應用程序是相同的
- 25. Facebook的預警應用程序:請求在同一時間
- 26. 服務器不同時響應多個AJAX請求
- 27. 與調用相同的線程中的JAX-WS請求和響應攔截器?
- 28. CORS和同源策略請求問題的反應捆綁的應用程序
- 29. 使用AngularJS進行JSON響應期間的POST請求問題
- 30. 設計Django應用程序與多對多的關係和跨不同的應用程序相同的模型