我正在用 C 编写一个数据库样式的东西(即它将存储和操作大约 500,000 条记录)。我将在内存受限环境 (VPS) 中运行它,因此我不希望内存使用量激增。我不会处理大量数据 - 总共可能高达 200MB,但我希望内存占用保持在 30MB 左右(将这些数字从空中拉出来)。
我的直觉是做我自己的页面处理(真正的数据库这样做),但我收到的建议是我应该只分配所有页面并允许操作系统为我执行 VM 分页。我的数字永远不会超过这个数量级。 在这种情况下哪个是最佳选择?
假设第二种选择,程序在什么时候进行自己的分页是明智的?显然,可以处理千兆字节的 RDBMsses 必须这样做,但必须有一个问题值得提出的规模。
谢谢!
最佳答案
使用 malloc
直到它运行。 然后并且只有那时,开始分析。如果遇到与专有和主流“真实数据库”相同的性能问题,您自然会开始执行缓存/页面/对齐优化。在您拥有一个可用的数据库之后,这些东西可以很容易地插入,并且与拥有一个可用的数据库是正交的。
关于c - 我应该管理页面还是只依赖虚拟内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3308075/