繁体   English   中英

我应该管理页面还是只依靠虚拟内存?

[英]Should I manage pages or just lean on virtual memory?

我正在用C编写数据库风格的东西(即它将存储和操作大约500,000条记录)。 我将在内存受限的环境(VPS)中运行它,所以我不希望内存使用量增加。 我不打算处理大量的数据 - 总共可能高达200MB,但我希望内存占用空间保持在30MB(将这些数字从空中拉出)。

我的直觉是我自己的页面处理(真正的数据库这样做),但我收到的建议说我应该只分配它并允许操作系统为我做VM分页。 我的数字永远不会超过这个数量级。 在这种情况下哪个是最佳选择?

假设第二种选择,在什么时候程序进行自己的分页是否明智? 显然,可以处理千兆字节的RDBMsses必须这样做,但在问题值得提出的规模上必须有一点。

谢谢!

使用malloc直到它运行。 然后,只有这样 ,开始分析。 如果遇到与专有和主流“真实数据库”相同的性能问题,您自然会开始执行缓存/页面/对齐优化。 在拥有可用的数据库之后,可以轻松地插入这些内容,并且与具有工作数据库正交。

执行自己的分页的数据库管理系统也受益于大量研究工作的投入,以确保其分页算法在不同的系统和负载条件下运行良好。 除非您拥有类似的资源,否则我建议不要采取这种方法。

您可以随意使用的OS分页系统已经受益于许多人的调优工作。

但是,您可以采取一些措施来调整操作系统以使数据库类型访问(大型顺序I / O操作)与典型的桌面调优(seq。和随机I / O的混合)相比。

简而言之,如果你是一个单人团队或一个小团队,你可能应该利用现有的工具,而不是试图在那个特定领域自己动手。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM