C++减少4096字节的内存页面大小

mic*_*kul 3 c++ 64-bit debian boost

现在在我的系统(debianx64)上,页面大小为4096字节.减少它有可能吗?我想在内存中存储许多小块但是即使保留1个字节我也不能使用另一个4095,因为这里添加了第一条消息中的东西.这是真的还是我错了?有可能吗?谢谢回复.

gre*_*ade 10

没有.

4096是x86平台提供的最小页面大小.这是CPU施加的限制.它提供更大的尺寸(最多4MB,具体取决于模式),但这通常由操作系统在启动时选择.

可以做的是将相对较大的分配作为对象池的后备存储.然后,如果您需要许多小对象,它们都可以存储在单个页面或内存区域中.这是提高内存分配性能的常用习惯用法.

此外,大多数理智的内存分配器无论如何都以这种方式工作,因此除非您在分析中发现需要它,否则不必实现对象池.