gpt4 book ai didi

c++ - 内存分配期间内存页断裂?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:42:40 25 4
gpt4 key购买 nike

我目前的情况如下:我正在使用 malloc(t) 分配 t 字节然后我用数据填充这个内存(只是为了强制从虚拟映射到物理内存)。内存页大小为 4kB。

鉴于这种情况,我有以下问题:

1.) 这使用了多少物理内存(我看到了以下选项):

  • 恰好 t 字节没有浪费内存(甚至不是部分内存页)
  • tB + 最多4kB(一个内存页的浪费它可以在同一个进程内使用)。
  • tB + 最多4kB(一个内存页的浪费它不能在分配存在时使用)
  • 由于映射技术(2 魔法或页面 block 的某种力量......其他原因),可能会浪费超过一页

2.) 这 block 连续的虚拟内存(一次分配)是否也会映射到一 block 连续的物理内存?

3.) 如果有一些浪费,我可以测量我的应用程序的确切内存占用量吗?最好来自 C++ 内部。

我应该指出,目前我的代码在 ubuntu linux 机器上运行,但仍然欢迎深入了解其他系统。

最佳答案

    • 首先,内存分配总是四舍五入(向上)到页面大小。
    • 我不明白你说的“分配存在时”...
    • 虽然它会导致很多问题,但是您进程中每个拥有指向已分配内存的指针的线程都可以访问它(因此您需要同步这些线程等。
  1. 你已经有了答案。
  2. 您可以使用 mmap

关于c++ - 内存分配期间内存页断裂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40993455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com