我正在處理的項目包含一個固定大小的緩衝區(FIFO):第一個輸入第一個輸出,其中客戶端將其請求發送到該緩衝區,並由系統處理它們。當緩衝區滿時,我必須應用以下超載策略之一(丟棄策略):
DRPH:從緩衝區頭部刪除一個請求。
DRPT:從緩衝區尾部刪除一個請求。
DRPR:隨機丟棄緩衝區中25%的元素。
BLCK:阻止新的連接,直到緩衝區中的空間可用。
我做了一個模擬測量性能使用Httperf每秒發送很多請求和測量響應時間,但我有不穩定的響應時間值,尤其是當請求數量很大時。所以通過模擬我無法得到最佳的下降策略。我每次重複模擬很多次,得到不同的值。
現在的問題是:
從理論上來說,什麼是最好的緩存管理丟棄策略所提到的政策中? 。什麼是最好的緩衝區管理丟棄策略?
-1
A
回答
0
這絕對取決於您的數據和它需要的順序。但通常,對於FIFO,緩衝區末尾的數據是最老的,因此最不可能再次需要的數據。所以DRPR可能是最好的解決方案。但是,只有當你能承受失去的數據(例如,因爲它可以在以後重新插入)。如果不是這種情況,則必須阻止連接,直到緩衝區空間再次可用。
另一件事:我會爭取一個動態的緩衝區。從合理的默認大小開始,看看它充滿了多快。超過一定的速率會增加緩衝區的大小(並且低於某個閾值,您可以再次降低)達到某個最大值。
+0
謝謝,這是一個有用的答案,現在,但不是確切的想要的答案。 – houssam 2013-04-27 00:44:07
相關問題
- 1. 緩衝區策略IllegalStateException
- 2. Ob_flush沒有丟棄緩衝區
- 3. Java緩衝區策略學習
- 4. 什麼是緩衝區?
- 5. 什麼是緩衝區?什麼是緩衝讀取和寫入?
- 6. 什麼是更好的實施策略?
- 7. Three.js緩衝區管理
- 8. 緩衝區管理c
- 9. Emacs緩衝區管理
- 10. 你有什麼風險管理策略?
- 11. RTC源代碼管理中的'備份前丟棄'是什麼?
- 12. 什麼是使ORM緩存無效的最佳策略?
- 13. 什麼是最好的POCO狀態跟蹤策略? (EF)
- 14. 什麼是最好的jar組織策略?
- 15. 什麼是最好的Docker標記策略?
- 16. 緩解環形緩衝區中輪詢效應的策略
- 17. 什麼是Java中最好的可調整大小的字節緩衝區?
- 18. 在Mysql中處理多個索引時最好的策略是什麼
- 19. sql server 2008中策略管理的用法是什麼?
- 20. 丟棄輸入緩衝區中的字符?
- 21. 丟棄標準輸入流緩衝區中的無關字符
- 22. 管理緩衝區內的數據
- 23. 緩衝區> CGImageRef-> UIImage的正確內存管理模式是什麼?
- 24. 什麼是Perf緩衝區大小?
- 25. 這是什麼緩衝區功能?
- 26. 什麼是緩衝區寫入?
- 27. G1 GC:什麼是SATB緩衝區?
- 28. 什麼是標準輸入緩衝區?
- 29. 什麼是文件IO流緩衝區?
- 30. Qt - 什麼是樣本緩衝區?
定義'最佳'。也許真正的解決方案是沒有固定大小的緩衝區。不是一個真正的問題。 – EJP 2013-04-26 09:59:07
@EJP:我的意思是:什麼樣的政策會取得最佳表現。它僅限於使用固定大小的緩衝區。 – houssam 2013-04-26 11:22:59
這完全取決於客戶沒有得到迴應時的行爲,例如,他們是否重試,多久使用/不使用回退,多少次等等。如果沒有重試,最佳性能將會達到總是放棄所有這些。你的項目*的目的肯定是評估這些政策?爲什麼這些具體的四個選擇?仍然不是一個真正的問題。 – EJP 2013-04-26 23:34:15