腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
我可以给malloc映射
内存
吗?
、
、
、
假设我使用完了一
大
块映射
内存
。它来自于匿名
内存
或使用MAP_PRIVATE的
mmap
。我可以munmap它,然后在下一次我进行足够大的
分配
时再次使用malloc
mmap
。我可以直接把
内存
给malloc吗?我可以说:“嘿malloc,这是我映射的一个地址范围。去把它用在堆空间上吧。你可以随意使用mprotect、mremap,甚至是munmap。”我在
linux
上使用glibc。
浏览 24
提问于2019-07-12
得票数 3
回答已采纳
1
回答
使用
mmap
保留地址空间的开销
我有一个程序,它通常使用大量的数组,其中的
内存
是使用
mmap
分配
的 有人知道在提交
内存
之前大量
分配
地址空间的典型开销吗?无论是使用MAP_NORESERVE
分配
还是使用稀疏文件备份空间?It5不可能是空闲的,因为它必须为
分配
的空间生成页表条目。在实现我正在考虑的算法之前,我想对这个开销有一些了解。
浏览 3
提问于2013-02-13
得票数 2
回答已采纳
1
回答
如何在C# (win +
linux
)中
分配
一个
大
的连续
内存
块
、
、
、
我在C#中搜索一个
内存
分配
方法,它提供了一个连续的
内存
块(> 4 GiB)。这个方法应该在Mono上工作,也可以在Microsoft .NET上使用。如果这个
内存
是非托管的,那就没有问题了。
Linux
:我找到了几种类似于HeapAlloc、AllocHGlobal、.的方法,但它们似乎都没有提供64位
大
小的参数。 还有一种为GC启用
大
对象的方法。这些物体是相邻的吗?
浏览 0
提问于2015-01-08
得票数 0
回答已采纳
1
回答
在
mmap
()之后立即执行任何有用的操作,MADV_DONTNEED是否立即?
、
我正在创建一个使用大型
mmap
()d匿名
内存
块的软件,其中大部分是未使用的--它是用于将来扩展的。我目前正在用
mmap
()
分配
它,然后告诉操作系统内核我实际上不需要使用madvise(ptr, bytes, MADV_DONTNEED)
分配
的页面。我已经发现,拥有大量
mmap
()'d
内存
的核心文件变得相当
大
,所以
浏览 1
提问于2019-08-22
得票数 0
回答已采纳
1
回答
Linux
给malloc()
分配
了多少
内存
?
、
、
这是一个
Linux
系统问题,而不是编码问题。当我使用"top“检查我的程序的
内存
使用情况时,它报告的值是实际堆
分配
值的3-4倍,这是一个
内存
分析器Val差尔的Massif给出的。“瓦兰手册”只给出了部分解释: 堆
分配
函数(如malloc )构建在这些系统调用之上。例如,当需要时,
分配
器通常会调用
mmap
来<e
浏览 5
提问于2015-06-11
得票数 2
1
回答
我能用一个过程中的PTEs来表示物理记忆的片段,在另一个过程中创建合适的PTEs吗?
、
、
、
、
当我们在
Linux
中使用函数
mmap
(,,, MAP_ANON | MAP_SHARED);时,对于同一区域的物理
内存
(在进程之间
分配
的)是
分配
虚拟
内存
页(PTEs)。这些PTE从一个进程的页表复制到另一个进程的页表(具有相同的物理地址
分配
内存
片段序列),这是真的吗? 但是
mmap
()需要在fork ()之前完成。如果我们已经有了两个工作过程(即fork ()之后),那么我们需要为
mmap
()使用一个文件。哪些函
浏览 1
提问于2013-12-01
得票数 1
6
回答
为什么malloc()可以互换地调用
mmap
()和brk()?
、
、
、
、
我刚接触过C和堆
内存
,还在努力理解动态
内存
分配
。因此,brk和
mmap
之间肯定有很大的区别,但理论上,无论请求的大小如何,我们都应该能够使用brk来
分配
堆
内存
。那么,为什么malloc在
分配
大量
内存</
浏览 7
提问于2020-09-23
得票数 17
回答已采纳
2
回答
这是一个多好的
内存
分配
器?
、
、
、
为了使
内存
分配
具有确定性,我使用MAP_NORESERVE,即使用
mmap
保留非常
大
的地址空间(在64位系统上),而不使用交换空间。然后,当我需要
内存
时,我通过在该地址空间范围内对MAX_FIXED执行
mmap
来
分配
10MB的空间。因此,
分配
的
内存
呈线性增长。 当我需要使用free
内存
时,我只需使用munmap将其取消映射。此外,我不会重用未映射的地址空间,而是继续提前
分配
。我猜这并不会真正影响任何
浏览 0
提问于2012-01-15
得票数 1
1
回答
当一个大块被“锁定”在较小的块之间时,
mmap
不工作是什么意思?
、
、
我正在为GNU
内存
分配
器读取GNU C库文档。
内存
分配
的另一种方式是用于非常
大
的块,即比页面大得多。这些请求是用
mmap
(匿名或via /dev/0;参见
内存
映射的I/O)
分配
的。这有一个很大的好处,即当这些块被释放时立即返回到系统。因此,不可能发生一个大块在较小的块之间被“锁定”,甚至在调用空闲
内存
之
浏览 4
提问于2021-01-11
得票数 1
回答已采纳
1
回答
内存
分配
阈值(
mmap
vs malloc)
、
、
、
、
我基本上是想弄清楚,由于我的项目的
内存
限制,是否有可能将
内存
分配
保持在阈值以下。下面是当前使用第三方using
分配
内存
的方式:{} 例如,这当前调用posix_memalign来
分配
(例如)32 of的
内存
。32 me超过给我的“
内存</em
浏览 2
提问于2017-07-11
得票数 0
2
回答
C++绿色线程的堆栈
分配
、
、
、
两者都需要用户代码为每个新函数/协同器
分配
一个堆栈。 我的目标平台是x64/
Linux
。使用
mmap
()
分配
一
大
块
内存
,希望内核足够聪明,使物理
内存
保持未
分配
状态,并且只在访问堆栈时
分配
。在这种情况下,我们任由内核决定。用
mmap
(PROT_NONE)预留一个大
内存
空间,并设置一个SIGSEGV信号处理程序。在信号处理程序中,当SIGSEGV是由堆栈访问引起的(所访问的
内
浏览 2
提问于2016-02-01
得票数 12
2
回答
关于
内存
分配
,C malloc/calloc依赖于
Linux
/malloc还是相反?
、
、
据我所知,C具有以下函数,例如:malloc、calloc、realloc,用于
分配
内存
。而
linux
内核还具有以下功能:malloc、
mmap
、kmalloc、vmalloc.
分配
内存
我想知道哪一个是最低的。如果你说"
Linux
内核是最低的函数,你的C程序必须用
Linux
内核
分配
内存
“,那么
Linux
内核如何
分配
它自己的
内存
呢?或者说,"<
浏览 1
提问于2022-03-19
得票数 -1
回答已采纳
2
回答
使用
mmap
的Emacs缓冲区
分配
、
、
、
、
为什么默认情况下,在cygwin、freebsd和irix6-5上激活
mmap
缓冲区
分配
,而在
linux
上却不激活?参见USE_
MMAP
_FOR_BUFFERS in emacs/src/config.h。use_
mmap
_for_buffers in emacs/configure.in.基于
mmap
的access 难道不是比普通缓冲区
分配
优越的吗?
浏览 3
提问于2011-06-13
得票数 9
回答已采纳
2
回答
linux
上的Malloc特定地址或页面(指定“最小偏移量”)
、
、
、
、
在
linux
上的LuaJIT中,所有VM镜像
内存
必须低于2GB进程
内存
边界,因为内部指针总是32位。因此,我想自己管理更大的
分配
(使用FFI和malloc等),例如
大
纹理,音频,缓冲区等。现在,我希望确保将这些映射到2GB边界的之上,因为这样它们就不会占用任何VM可管理的
内存
。是否有任何方法可以用于malloc或
mmap
(没有映射文件,或者可能在SHM中)来
分配
特定于该地址之上的指针?甚至不需要占用2gig,只需将我的指针映射到更高的(=非32位)地址
浏览 4
提问于2015-09-16
得票数 1
回答已采纳
1
回答
在
linux
上匿名
内存
映射是默认的吗?
、
、
、
如果在
linux
上使用
mmap
系统调用使用匿名
内存
映射来
分配
内存
:我想知道是否映射
内存
是默认的,或者是否只有当程序将访问映射的虚拟
内存
时才实际
分配
物理页面?我之所以这样问,是因为在映射时,我不知道程序是否会实际使用所有
分配
的
内存
。因此,如果内核实际上只
浏览 24
提问于2020-02-04
得票数 0
3
回答
如何为
Linux
中的
内存
映射文件提供即插即用功能?
、
、
我想在
Linux
上做的事情如下: 我知道我可以在Windows上使用函数、PAGE_GUARD
内存
保护位和来实现这一点。
Linux
上的相应方法是什么来做同样的事情呢?是否有更好的方法在
Li
浏览 7
提问于2011-08-04
得票数 6
回答已采纳
1
回答
栈展开后未回收
Linux
堆栈驻留
内存
、
、
、
、
如果在堆栈上
分配
的话,
Linux
不再使用它时就不会回收
内存
。我在堆上动态
分配
(malloc/
mmap
) 1GB。在
分配
之前: 虚拟
内存
1GB 虚拟
内存
1GB 虚拟
内存
1GB 我在堆栈上动态
分
浏览 3
提问于2013-01-17
得票数 2
1
回答
mmap
()在
分配
大量
内存
时失败
、
、
、
对于我的程序,我需要一个大小为进程虚拟
内存
空间1/8
大
小的字节数组。 我使用getrlimit()系统调用来获取虚拟
内存
大小,然后使用setrlimit()将其设置为最大限制。然后,我使用
mmap
()
分配
一个大小为虚拟
内存
大小的1/8的数组。我不明白为什么程序几乎没有
分配
内存
,更不用说7/8的
内存
了。我尝试使用malloc(),为
mmap
()指定一个偏移量,使用软限制而不是硬限制,<em
浏览 3
提问于2020-11-29
得票数 0
回答已采纳
2
回答
如何增加使用
mmap
()
分配
的
内存
区域的大小
、
、
、
、
我正在使用
mmap
Linux
syscall
分配
内存
。, 4096 ; initial region size in bytes mov x8, 222 ;
mmap
是否有可能增加
分配
的
内存<
浏览 13
提问于2021-11-06
得票数 1
1
回答
为什么mtrace实用程序不支持
mmap
()
分配
?
、
、
、
、
为什么
Linux
mtrace实用程序不能跟踪通过
mmap
() / munmap() cals完成的
内存
分配
?如何实现这一点?挑战是什么?我需要一个可靠的工具来跟踪我的应用程序所做的
内存
分配
,它大量使用
mmap
()调用。
浏览 2
提问于2014-09-05
得票数 1
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Linux内存映射mmap原理分析
Linux 内核将弃用并删除 SLOB 内存分配器
零拷贝技术在 Java 中为何这么牛?
推荐 死磕内存篇2-JAVA进程是怎么突然挂掉的
Kafka和RocketMQ底层存储之那些你不知道的事
热门
标签
更多标签
云服务器
ICP备案
实时音视频
对象存储
即时通信 IM
活动推荐
运营活动
广告
关闭
领券