C++ C++;将内存页大小从4096字节减少

C++ C++;将内存页大小从4096字节减少,c++,boost,64-bit,debian,C++,Boost,64 Bit,Debian,现在在我的系统(debianx64)上,页面大小是4096字节。有没有可能降低它?我想在内存中存储许多小片段,但即使保留1字节,我也不能使用另一个4095,因为在这里的第一条消息中添加了一些东西。 这是真的还是我错了? 有可能吗? 谢谢回复。否 4096是x86平台提供的最小页面大小。这是CPU施加的限制。它提供更大的尺寸(最大4MB,取决于模式),但这通常由操作系统在引导时选择 您可以做的是将一个相对较大的分配作为一个应用程序的备份存储。然后,如果您需要许多小对象,它们都可以存储在单个页面或内

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

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

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


此外,大多数健全的内存分配器都是这样工作的,因此不必实现对象池,除非您在分析中发现需要它。

页面大小是操作系统范围内的项目。不能只为应用程序创建新的页面大小,因为页面错误逻辑必须与所有其他进程一起工作

我不知道你到底想做什么。我要说的是,如果您甚至担心这个问题,那么您需要通过连续存储和访问内存(如在阵列中)使您的软件对缓存更友好。

页面大小(顺便说一句,在x86平台上不能降低到4K以下)很可能与您的情况无关。如果您在堆上分配数据,页面大小的问题将不会以您假定的方式出现。

Duplicate of。