我想为一个大数组分配空间,该数组在程序结束前都是只写的。出于这个原因,我不在乎它是否被缓存。
我也想非常频繁地访问它,所以我不想多次访问页面。出于这个原因,我希望它被分配在一个大页面(例如 4M)中。
那我怎么能...
- ...请求内存是不可缓存的还是直写的?
- ...请求将内存放在一个大页面中?
我在 Linux 中工作。
最佳答案
如果它强制一直写入到 RAM,禁用缓存听起来会让您的写入速度变慢。我不确定我是否会尝试这样做。
要实际使用大页面,我建议关注 HugeTLB - Large Page Support in the Linux Kernel .它包含一个示例,说明如何通过共享内存段使用大页面。
关于linux - 如何在 Linux 中分配满足分页和缓存能力要求的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5692934/