当前位置: 首页 > 面试题库 >

有什么办法可以保留但不能在Linux中提交内存?

温嘉赐
2023-03-14
问题内容

Windows具有VirtualAlloc,它允许您保留地址空间的连续区域,但实际上不使用任何物理内存。稍后,当您要使用它(或它的一部分)时,您再次调用VirtualAlloc来提交以前保留的页面的区域。

这实际上确实很有用,但是我最终希望将我的应用程序移植到linux-因此,如果以后无法移植,我就不想使用它。linux有办法吗?

编辑-用例

我正在考虑分配4 GB或类似的虚拟地址空间,但一次只能分配64K。这将为我提供一种零拷贝的方式来将阵列增长到4
GB。这很重要,因为典型的两倍数组大小和复制会为非常大的数组引入看似随机的,不可接受的延迟。


问题答案:

mmap一个特殊文件,例如/dev/zero(或使用MAP_ANONYMOUS)PROT_NONE,然后使用mprotect进行提交。



 类似资料:
  • 问题内容: 有什么办法可以反编译Linux .so? 问题答案: 有反编译器,但是反编译器可能不会以与原始程序所用语言相同的语言发出代码。 也有反汇编程序,可以将机器代码重新汇编为汇编程序。 反编译Wiki 可能是其他信息的良好来源。

  • 我一直在关注快板5平台和他的文件管理器使用的教程!openFile.eof(),我听说它不好,我很确定它是什么让我的矢量下标超出范围错误。除了它,还有什么我可以使用的吗?另外,你能检查一下我的图层类,以防我的矢量下标超出范围错误吗?我想不出来,我很确定它来自文件管理器,但我不知道。 它仅输出地图的第一行。当我把它改成“而”(标准:::getline(打开文件,行))时,我甚至从未去过标准::cou

  • 问题内容: 我犯了一个大错误,就是我更新了一个在MySQL中没有’where’子句的表:’( 它是自动提交的。 有什么办法可以回滚吗? 问题答案: 不,没有查询可以“撤消”已提交的修改数据的查询。 如果您有数据库的备份,则可以还原备份并使用DBA工具(在MySQL中为mysqlbinlog)从备份“重放”日志中的所有修改数据的查询,然后将其回数据库,但是跳过问题查询。 如果您没有备份以及该备份以来

  • 想要保持页面在edge浏览器里不被休眠,要如何弄呐。

  • 问题内容: 对于不同的屏幕尺寸,我需要div内的元素位于其div之外。 我目前有重复的html,并将其隐藏在某些视口中,这显然不是理想的选择,但是我不确定是否还有另一种方法。 这是html台式机和平板电脑 这是手机所需的html 这样我就可以对容器div中的所有项目使用flexbox命令 问题答案: 这是的完美用例 导致元素的子元素看起来像是元素父元素的直接子元素,而忽略了元素本身。当使用CSS网

  • 用户提交表单后如何保留他们的输入? 例如: 如果用户键入 fname 和 lname,是的,它会回显出来。但是我想在输入类型中保留他们的名字和姓氏,这样如果表单很长,用户就不需要再次填写。