整页 Malloc

2023-11-21

我试图通过一次使用整个页面来优化程序的内存分配。

我正在获取这样的页面大小:sysconf(_SC_PAGESIZE);然后计算适合页面的元素总数,如下所示:elements=pageSize/sizeof(Node);

我在想,当我真正去 malloc 我的内存时,我会使用malloc(elements*sizeof(Node));似乎 sifeof(Node) 的乘法和除法会抵消,但是对于整数除法,我不相信情况是这样。

这是一次分配整个页面的最佳方法吗?

Thanks


The malloc函数没有任何页面大小的概念。除非您分配的页面也与页面边界对齐,否则您不会从调用中获得任何好处malloc这样。只是malloc您需要尽可能多的元素,而不必担心微优化几乎肯定不会给您带来任何好处。

是的,Linux 内核一直在做这样的事情。原因有二:

  1. 您不想分配大于页面的块,因为这会显着增加分配失败的风险。
  2. 内核分配是按页进行的,而不是像 C 库那样一次性分配大量内存,然后将其分割成小组件。

如果您确实想分配页面大小的内存量,请使用以下结果sysconf(_SC_PAGESIZE)作为你的尺寸参数。但几乎可以肯定,您的分配跨越了两个页面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

整页 Malloc 的相关文章

  • 部署 MVC4 项目时出错:找不到文件或程序集

    过去 我只需使用 Visual Studio 2012 发布到 AWS 菜单项即可部署我的 MVC4 网站 到 AWS Elastic Beanstalk 现在 程序可以在本地编译并运行 但无法部署 从消息来看 它似乎正在寻找不在当前部署的
  • 属性对象什么时候创建?

    由于属性实际上只是附加到程序集的元数据 这是否意味着属性对象仅根据请求创建 例如当您调用 GetCustomAttributes 时 或者它们是在创建对象时创建的 或者 前两个的组合 在由于 CLR 的属性扫描而创建对象时创建 从 CLR
  • 如何在 Unity 中从 RenderTexture 访问原始数据

    问题的简短版本 我正在尝试访问 Unity 中 RenderTexture 的内容 我一直在使用 Graphics Blit 使用自己的材质进行绘制 Graphics Blit null renderTexture material 我的材
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 写入和读取文本文件 - C# Windows 通用平台应用程序 Windows 10

    有用 但在显示任何内容之前 您必须在文本框中输入内容 我想那是因为我使用了 TextChanged 事件处理程序 如果我希望它在没有用户交互的情况下显示文本文件的内容 我应该使用哪个事件处理程序 因此 我想在按下按钮时将一些数据写入 C W
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • 使用向量的 merge_sort 在少于 9 个输入的情况下效果很好

    不知何故 我使用向量实现了合并排序 问题是 它可以在少于 9 个输入的情况下正常工作 但在有 9 个或更多输入的情况下 它会执行一些我不明白的操作 如下所示 Input 5 4 3 2 1 6 5 4 3 2 1 9 8 7 6 5 4 3
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • GBM多项分布,如何使用predict()得到预测类别?

    我正在使用多项式分布gbmR 中的包 当我使用predict函数 我得到一系列值 5 086328 4 738346 8 492738 5 980720 4 351102 4 738044 3 220387 4 732654 但我想得到每个
  • 使用附加字符串本地化 Info.plist 变量

    我正在尝试本地化应用程序的名称 同时仍然能够根据构建配置附加字符串 所以目前它设置为
  • Cordova iOS 插件在构建后失败,除非我先删除平台和插件 JSON

    我有一个 Cordova 3 2 0 项目 我正在使用 XCode 模拟器和通过 USB 的 iPhone 4S 进行测试 当我执行以下命令时 应用程序运行时没有错误 rm rf platforms ios rm plugins ios j
  • 调用 RFC_READ_TABLE 时出现 DATA_BUFFER_EXCEEDED 错误?

    我的 java groovy 程序从用户输入接收表名和表字段 它查询 SAP 中的表并返回其内容 用户输入可能涉及表CDPOS and CDHDR 在阅读 SAP 文档和谷歌搜索后 我发现这些是存储更改文档日志的表 但我没有找到任何可以在j
  • ui-router $stateChangeStart 上的无限循环

    加大力度angular and 用户界面路由器 如果不满足先决条件 则很难重定向到不同的状态 我尝试使用拦截器 如何在角度拦截器中执行重定向 但有人提到处理 stateChangeState 会更合适 但我仍然陷入无限循环 Check he
  • Angular - 组件不同的模板

    我有一个组件 课程 我将此组件用于列表 该列表有时是水平的 有时是垂直的 我可以在组件内部动态选择模板文件吗 Component selector course templateUrl getTemplateFile 像这样的东西将是很棒的
  • Global.asax 中的事件未触发

    在我的 ASP Net 应用程序中 我无法在我的计算机上触发 Global asax 中的事件 例如 Session Start 将不会触发 同样的 Global asax 在我办公室的其他开发机器上运行良好 我努力了 ASP Net 开发
  • 我可以对指向 void 指针的指针使用指针算术吗?

    我知道你不能对 void 指针使用指针算术 但是理论上你可以对指向 void 指针的指针进行指针算术吗 因为sizeof void 会产生一个指针在您的系统上占用多少字节的答案 不允许进行指针运算void 因为void是一个不完整的对象类型
  • 以编程方式初始化 ViewController

    我正在尝试初始化一个UIViewController在我的 Swift 应用程序中 但我面临一个问题 我找不到任何明确的答案 我想从 FlowCoordinator 调用它来初始化控制器 但由于需要 init coder NSCoder 函
  • C++ Switch 无法使用用作 case 的外部定义变量进行编译

    我正在使用 MinGW GNU 编译器编写 C 当我尝试使用外部定义的整数变量作为 switch 语句中的 case 时 就会出现问题 我收到以下编译器错误 case 标签不会减少为整数常量 因为我已将整数变量定义为 extern 我相信它
  • Bootstrap Modals 和 Youtube:自动播放并在关闭时停止

    我需要能够在 Twitter Bootstrap 模式打开时自动播放 YouTube 视频 然后在关闭时停止该视频 我知道这个问题之前已经被问过 但我能找到的答案会导致包含许多视频的页面出现大量 javascript 代码 我正在努力减少膨
  • 如何在 IVY 中没有提供的情况下复制运行时库

    我以为我不需要问这个 但我没有任何进展 这个问题的解答 ivy如何将maven范围映射到ivy配置实际上解决了问题 但在理论部分 我有这样的配置
  • 如何为类的私有和公共成员分配内存

    在类中 私有成员是与公共成员分配在单独的内存中 还是所有成员都按照其定义的顺序分配 例如 class A private int a1 int a2 3 public int z int a3 2 int a4 5 private int
  • System.UnauthorizedAccessException:对路径“...”的访问被拒绝

    我使用 net 使用单击一次安装完成了 C wpf 安装 一切正常 然后我有以下代码 它是已安装程序的一部分 String destinationPath System Windows Forms Application StartupPa
  • 检测输入类型文本的编程更改[重复]

    这个问题在这里已经有答案了 当脚本更改输入类型文本的值时 有没有办法获得通知 I have
  • R:从字符串中删除最后三个点

    我有一个文本数据文件 我可能会用它来读取readLines 每个字符串的初始部分包含很多乱码 后面是我需要的数据 乱码和数据通常由三个点分隔 我想在最后三个点之后分割字符串 或者用某种标记替换最后三个点 告诉 R 将这三个点左侧的所有内容视
  • 将 scipy.stats.gaussian_kde 与二维数据一起使用

    我正在尝试使用the scipy stats gaussian kde class把一些离散的经纬度信息采集到的数据进行平滑处理 所以最后看起来有点像等高线图 密度高的就是峰 密度低的就是谷 我很难将二维数据集放入gaussian kde班
  • CakePHP 控制器别名

    我知道还有一些关于这个主题的其他主题 但似乎没有一个适合我的需要 我拥有的 example com log 日志控制器 php I have LogsController代替LogController 复数 因为 CakePHP 希望你有复
  • 应用程序服务器和 servlet 容器之间的区别?

    我试图理解成熟的应用程序服务器 例如 Weblogic JBoss 等 和 servlet 容器 Tomcat Jetty 等 之间的区别 它们有何不同以及何时使用哪个 Thanks servlet 容器仅支持 servlet API 包括
  • 整页 Malloc

    我试图通过一次使用整个页面来优化程序的内存分配 我正在获取这样的页面大小 sysconf SC PAGESIZE 然后计算适合页面的元素总数 如下所示 elements pageSize sizeof Node 我在想 当我真正去 mall