c - 如何用 block 来定义页面?

标签 c memory memory-management block

我了解到,当我们管理诸如树或其他图之类的数据结构时,其节点以称为 block 的形式存储在计算机中,并且图的节点可以组成 block ,并且它是在 block 之间传输的 block 当数据结构在主内存和辅助内存之间移动时,辅助内存和主内存。所以我认为 block 是什么是很清楚的,它可以根据架构由不同的大小组成,但通常是 4K。现在我想知道一个 block 如何与内存页面相关。页面是由 block 组成的吗? block 与页面的关系是什么?我们可以用 block 来定义内存中的页面是什么吗?

最佳答案

您通常会尝试定义一个 block ,使其大小与内存页的大小相同,或者其大小可以被内存页的大小整除,以便在一个页中容纳整数个 block 。

正如您所提到的,4K 往往效果很好——典型的内存页面大小是 4K 和 8K。大多数还支持至少一种更大的页面大小(例如 1 兆字节),但您通常可以或多或少地忽略它们;它们主要用于映射单个大块的连续内存(例如,CPU 直接可见的图形内存部分)。

关于c - 如何用 block 来定义页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10722373/

相关文章:

linux - 如何查看进程的堆内存使用情况?

memory-management - Erlang 中的垃圾收集和内存管理

android - 在 Android 上缓存 SVG 图像和内存使用

c - executable(hello) 未创建,已创建两个程序的目标文件

c - 使 C float 精确?

c - 在 dlopen() 库中返回指向 malloc() 的指针时出现 SIGSEGV

c - 为什么 fopen 不起作用?

c - 获取内存地址

c++ - 为什么在c/c++中需要分配内存?

iphone - 由于内存问题/MBProgressHUD 指示器导致应用程序崩溃