我在写一个实现lruskips参数的商业案例。我知道这些好处(它们可能很大)。我不知道的是在内存等方面的性能开销,我应该考虑作为缺点。毕竟我们需要一个平衡的观点! OpenEdge 10.2B08 已将各种不同风格的Windows与而不是一起用于Linux。Openedge 10.2B08 lruskips overhead
0
A
回答
1
该功能通过避免与维护LRU链相关的内务管理消除了开销。使用它不会增加任何内存需求,并可减少CPU消耗。
每次引用它时,都只会对每个X引用执行一次块代替将块移到LRU链的头部。因此,不是驱逐绝对是“最近最少使用”的区块,而是“可能不是最近使用过”的区块将被驱逐。
唯一潜在的缺点是,理论上可能是一个反常的情况,将其设置得太高可能会导致一些不好的驱逐决定。 IOW事实上“可能”部分事实证明是不真实的,因为你没有经常检查(你基本上已经将-B管理转换为FIFO队列)。
例如,将其设置为1000000并且-B为1000可能不太聪明。 (但更大的问题可能是B 1000)
假设你这样做了(set -lruskips 1000000 -B 1000),并且你的应用程序有一个“普通”访问和几个后台进程的组合顺序扫描以支持报告。
报告的东西将读取它只看到一次(或几次)的大量数据。这些数据将立即放置在队列的MRU末端,并在读取新数据时移向LRU端。
即使正在频繁访问,“正常”数据的工作集将被推送到LRU端,因为访问计数器更新正在被跳过。有了一个小小的-B它会很快脱落并被驱逐。然后下一次访问将导致IO发生,周期将重新开始。
你设置的越高-lruskips越敏感,你会变成这样的事情。 - lruskips 10将消除90%的家务管理,应该是一个非常非常低的风险设置。 -lruskips 100将消除99%的内务管理,应该仍然是非常低的风险(除非-B疯狂小)。除非你有一组非常特殊的情况,否则它高于100似乎毫无意义。你很容易陷入“收益递减”,并可能将你的运气推向不利的结果。
相关问题
- 1. signalR overhead
- 2. Yesod devel cpu overhead
- 3. OpenEdge动态TempTable
- 4. openEdge SmartToolBar记录修改
- 5. Openedge进度4GL表加入
- 6. OpenEdge级联的性能
- 7. OpenEdge记录锁调试
- 8. Openedge Progress数据库与Phalcon
- 9. OpenEdge和实体框架
- 10. OpenEdge OS-COMMAND未能执行
- 11. 怪异OpenEdge查询行为
- 12. Openedge复制过程验证?
- 13. 没有DataDirect的OpenEdge的ODBC?
- 14. Hadoop .20 datanode上的“GC Overhead limit exceeded”错误
- 15. OpenEdge修剪应用程序服务器
- 16. 通过JDBC连接到Talend中的OpenEdge
- 17. 复制整个大型OpenEdge表
- 18. 如何启用OpenEdge调试器?
- 19. 在OpenEdge中按创建时间排序
- 20. 进展OpenEdge像SQL那里IN?
- 21. 将OpenEdge进展到PostgreSQL数据库
- 22. Progress OpenEdge Developer Studio - 在工具栏中缺少OpenEdge选项卡并且没有默认服务器
- 23. Progress 4gl,Openedge在所有用户中更新Progress.ini
- 24. 我应该学习Openedge作为C#程序员吗
- 25. 是否可以在Eclipse 3.7.x中使用OpenEdge Architect?
- 26. MOUSE-EXTEND-CLICK EVENT正在进行开发人员Studio for OpenEdge 11.6
- 27. 是否有Microsoft SQL Server Profiler等效于Progress OpenEdge ABL?
- 28. 发送HttpRequest,但没有响应正在进行OpenEdge
- 29. 从OpenEdge UI触发器向主程序抛出错误
- 30. Openedge JDBC:在表上锁定失败PUB._File