首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mmap是否一次分配所有内存?

mmap是否一次分配所有内存?
EN

Stack Overflow用户
提问于 2013-10-29 08:39:01
回答 1查看 417关注 0票数 2

我正在开发一个JIT编译器,它将在内存中生成机器码。这个JIT主要针对64位的POSIX x86系统,我担心代码中的跳转总是可以编码为32位的相对偏移量。我想做的是为机器代码映射一个2-4 4GB的可执行内存块,并自己管理这个内存区。

我特别想知道的是:在64位系统上,即使系统没有4 4GB的内存,一次映射4 4GB的内存对我来说安全吗?我假设大多数(或所有) OSes实际上不会分配我没有写入的页,所以如果我总是先分配较低的地址,只要我实际使用的内存不超过系统物理占用的内存,我就没有问题。

我也很想听到关于如何管理机器代码分配的替代建议,以便机器代码始终驻留在64位机器上相同的4 4GB空间中。

EN

回答 1

Stack Overflow用户

发布于 2013-10-29 09:00:31

4 4GB的mmap可能会成功分配虚拟内存,并且物理页面将在它们被“弄脏”或被您的程序修改时被分配。如果您耗尽了物理内存,您的进程可能会终止。另请参阅this question

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19647660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档