繁体   English   中英

可以读入进程内存的最大块大小是多少?

[英]What is maximal block size could be read into memory of a process?

我需要读取一个大文件,但是除了程序参数之外,用户还提供了块大小。 每个块都必须读入内存才能生成块的散列。 我怎么说这是我可以读入进程内存的最大块大小?

说,我正在使用 Boost 中的mapped_region 有一个参数size ,它是区域的大小。 所以我想知道我可以传递给mapped_region的构造函数的最大大小。

C++ 标准指定的对象最大大小的最小实现限制为 262 144 字节。 允许实现支持更大的对象,而且很多都支持。

另一个限制是地址空间的大小。 例如,在 32 位地址空间中,可以寻址的内存不超过 2 32字节。 此外,某些地址空间(通常是一半或四分之一)将保留给操作系统内核。

此外,一个潜在的限制是系统上可用的物理内存量(包括交换)——除非操作系统过度使用内存,并且永远不会写入对象的内存。

此外,某些操作系统可能会限制进程可以分配的内存总量,例如 POSIX 上的RLIMIT_DATA

暂无
暂无

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

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