Linux Kernel 内存管理函数 vmalloc 拥有更快的执行速度

栏目: 服务器 · Linux · 发布时间: 7年前

内容简介:vmalloc 用于在虚拟地址空间中分配连续内存,合并了代码的 Andrew Morton 说到:“新版本中 vmalloc 发生的改变为其带去了巨大的性能优势。”据了解,vmalloc 代码的主要变更集中在现在,Linux 内核的机制是在拥堵的列表迭代中完成新 VA 区域的分配,直到在两个拥堵的区域之间找到合适的空隙。因此,每次新分配都会导致列表增长。而由于长列表和不同的许可参数,分配在嵌入式设备上可能需要很长时间(毫秒)。

据 phoronix 的报道 ,在 Linux Kernel 5.2 版本中,其用于内存管理的 vmalloc 函数具有更快的执行速度,特别是在嵌入式设备上。

vmalloc 用于在虚拟地址空间中分配连续内存,合并了代码的 Andrew Morton 说到:“新版本中 vmalloc 发生的改变为其带去了巨大的性能优势。”据了解,vmalloc 代码的主要变更集中在 追踪用于分配的空闲块

现在,Linux 内核的机制是在拥堵的列表迭代中完成新 VA 区域的分配,直到在两个拥堵的区域之间找到合适的空隙。因此,每次新分配都会导致列表增长。而由于长列表和不同的许可参数,分配在嵌入式设备上可能需要很长时间(毫秒)。

最新提交的补丁将 vmalloc 内存布局组织到 VMALLOC_START-VMALLOC_END 范围的空闲区域中。它使用一个红黑树,以保持这些块按其偏移量进行排序,以及为了增加的地址而与链表一起保持一定的空闲空间。

根据测试,使用了 Uladzislau Rezki 的补丁并执行同样的行为,再与 Linux Kernel 5.1 及之前的版本进行对比,调用 vmalloc() 可节省多达 67% 的时间 —— 至少根据开发者在 QEMU 上进行的测试显示如是。

转自 https://www.oschina.net/news/106846/linux-5-2-vmalloc-performance


以上所述就是小编给大家介绍的《Linux Kernel 内存管理函数 vmalloc 拥有更快的执行速度》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

集体智慧编程

集体智慧编程

TOBY SEGARAN / 莫映、王开福 / 电子工业出版社 / 2009-1 / 59.80元

本书以机器学习与计算统计为主题背景,专门讲述如何挖掘和分析Web上的数据和资源,如何分析用户体验、市场营销、个人品味等诸多信息,并得出有用的结论,通过复杂的算法来从Web网站获取、收集并分析用户的数据和反馈信息,以便创造新的用户价值和商业价值。全书内容翔实,包括协作过滤技术(实现关联产品推荐功能)、集群数据分析(在大规模数据集中发掘相似的数据子集)、搜索引擎核心技术(爬虫、索引、查询引擎、Page......一起来看看 《集体智慧编程》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码