我正在处理的项目包含一个固定大小的缓冲区(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