Linux内核中slab内存管理的缓存着色

2024-01-03

我最近读到有关slab系统的缓存着色的内容,但不明白。 为什么为不同slab中的对象添加不同偏移量的缓存着色可以提高性能?

我最初的猜测是: 具有缓存偏移量的slab分配器,尝试将slab的第一个对象放在不同缓存颜色的内存中。如果客户端从这些slab中分配N个对象,它将获得具有N个缓存颜色的N个对象。

我的猜测是否正确,或者有人可以给我更多提示吗? 多谢,


我建议通过“了解Linux虚拟内存 https://www.kernel.org/doc/gorman/pdf/understand.pdf“书 - 平板分配器章节。正如它所引用的那样,

板分配器的最终任务是优化硬件缓存的使用。如果将对象打包到slab中后还有剩余空间,则剩余空间将用于为slab着色。板着色是一种尝试让不同板中的对象使用缓存中不同线的方案。通过将对象放置在slab内不同的起始偏移处,对象可能会使用CPU缓存中的不同行,这有助于确保来自同一slab缓存的对象不太可能相互刷新。

我想这回答了你的疑问。

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

Linux内核中slab内存管理的缓存着色 的相关文章

  • 使用 --prof 选项创建多个日志文件而不是一个 v8.log 的节点

    我正在尝试使用 prof 选项来分析我的 Node 应用程序 但我发现不是一个单一的 v8 log 文件 而是使用诸如isolate 0x9582b40 v8 log isolate 0xa1cab78 v8 6049 等前缀创建的多个文件
  • 如何使用缓存快速重建dockerfile?

    我想优化我的 Dockerfile 我希望将缓存文件保留在磁盘中 但是 当我跑步的时候我发现docker build 它总是尝试从网络获取每个文件 我希望在构建期间共享我的缓存目录 例如 var cache yum x86 64 6 但是
  • Linux下单个目录下文件过多会怎样?

    如果一个目录中有大约 1 000 000 个单独的文件 大部分大小为 100k 其中没有其他目录和文件 是否会以任何其他可能的方式降低效率或产生缺点 ARG MAX 会对此提出异议 例如 rm rf 在目录中时 会说 参数太多 想要执行某种
  • svg 圆形描边上的多种颜色

    我想创建一个彩虹圈 如下图所示 如何绘制弯曲的多色标渐变 这是我当前的代码
  • 有没有办法提高linux管道的性能?

    我正在尝试使用 64 位将超高速数据从一个应用程序传输到另一个应用程序CentOS http en wikipedia org wiki CentOS6 我使用以下方法进行了基准测试dd发现阻碍我的是管道而不是程序中的算法 我的目标是达到
  • 我可以在 ASP.NET MVC 中使用 [CompressFilter] 而不破坏甜甜圈缓存吗

    我正在努力获得 压缩过滤器 http www thegrubbsian com p 202 使用甜甜圈缓存并遇到问题 发生的情况是整个页面都被缓存 而不仅仅是甜甜圈 的来源CompressFilter我正在使用的是下面的 我从原始来源 ht
  • grep 彩色线条

    我编写了一个简单的 PHP shell 脚本 它解析文件并输出某些元素 它产生大量的输出 采用不同的 bash 颜色 绿色表示正常 黄色表示警告 红色表示错误等 在开发过程中我想过滤掉一些行 例如 所有包含红色文本的行 我可以使用grep
  • 使用 AFNetworking 的 setImageWithURL 时如何配置缓存

    我在用着setImageWithURL在我的应用程序中下载一些图像 是否可以 指定此图像必须在缓存中保存多长时间 例如 1 周 指定缓存的最大总大小有多大 例如 200 兆 查看图像缓存中有什么 清除缓存 文档 http engineeri
  • Linux 中的 Windows NAmed Pipes 替代品

    我们正在将现有的 Windows 代码移植到 Linux 我们使用 ACE 作为抽象层 我们使用 Windows 命名管道与多个客户端进行通信并执行重叠操作 linux 下这个相当于什么 我检查了linux命名管道 FIFO 但它们似乎只支
  • 打印 STDOUT/STDERR 并将它们写入 Bash 中的文件?

    有没有办法让 Bash 将 STDOUT STDERR 重定向到文件 但仍然将它们打印到终端 这会将 STDOUT 和 STDERR 重定向到同一个文件 some command 2 gt 1 tee file log Example to
  • 每个虚拟主机的错误日志?

    在一台运行 Apache 和 PHP 5 的 Linux 服务器上 我们有多个带有单独日志文件的虚拟主机 我们似乎无法分离 phperror log虚拟主机之间 覆盖此设置
  • Python 中的颜色处理

    对于我的聚类 GUI 我目前对聚类使用随机颜色 因为我事先不知道最终会得到多少个聚类 在 Python 中 这看起来像 import random def randomColor return random random random ra
  • 如何在C程序中直接改变显存映射来绘制像素(无需库函数)

    是否可以通过使用 C 程序更改 RAM 中屏幕 视频即监视器 内存映射中的值来显示黑点 我不想使用任何库函数 因为我的主要目标是学习如何开发简单的操作系统 我尝试访问起始屏幕内存映射 即 0xA0000 在 C 中 我尝试运行该程序 但由于
  • iOS 解决方案仅当图像尚未使用 SDWebImage 缓存在内存中时才加载带有动画的图像

    我已经为这个问题苦苦挣扎了几天 以前我使用 AFNetworking 类别来加载和缓存图像 但它的回调中没有提供缓存类型 所以我过去常常在每个控制器中跟踪哪些图像已经加载 我浏览了 SDWebImage 它提供了我正在寻找的东西 SDIma
  • X 按键/释放事件捕获,与焦点窗口无关

    我想记录所有传入的按键事件 无论哪个窗口处于焦点状态或指针位于何处 我编写了一个示例代码 它应该捕获当前焦点窗口的按键事件 include
  • 为什么 Firefox 会忽略缓存标头并在刷新时重新验证?

    我有一些不可变的图像资源 可以永久缓存 Chrome 似乎尊重我的响应标头 并且不会重新验证资源 以下是 Chrome 中其中一项资源的示例 正如你所看到的 我包括cache control public max age expires e
  • “./somescript.sh”和“. ./somescript.sh”有什么区别

    今天我按照一些说明在 Linux 中安装软件 有一个需要首先运行的脚本 它设置一些环境变量 指令告诉我执行 setup sh 但是我执行时犯了一个错误 setup sh 所以环境没有设置 最后我注意到了这一点并继续进行 我想知道这两种调用脚
  • ggplot:类似于scale_color_steps()的有序因子的色标

    With scale color steps 我们可以通过设置low和high争论 一个例子 df lt data frame x rnorm 99 y rnorm 99 col rnorm 99 ggplot df aes x y col
  • ARM 的内核 Oops 页面错误错误代码

    Oops 之后的错误代码给出了有关 ARM EX 中的恐慌的信息 Oops 17 1 PREEMPT SMP在这种情况下 17 给出了信息 在 x86 中它代表 bit 0 0 no page found 1 protection faul
  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015

随机推荐

  • 用于输入验证的正则表达式白名单 - 重音不敏感

    我希望能够将用户输入限制为有效字符白名单 但我不想阻止来自其他文化的人注册 到目前为止 我有这个 a zA Z0 9 它允许大多数法语口音 但拉丁字符集中的口音列表非常多 我更愿意使用白名单而不是黑名单 以防我错过一些东西 Note 这适用
  • dotnet run 具有特定 url 的网站

    如何指定使用 dotnet cli 来使用特定配置运行我的 Web 应用程序 我知道可以使用hosting json 但我没有找到任何文档如何执行此操作以及这与 dotnet cli 有何关系 看看这个样本 https github com
  • 如何使用 Twitter API V2 和 Tweepy Python 发布带有媒体(图片)的推文?

    我正在尝试使用 Twitter API V 2 和 Tweepy 创建我的第一个 Twitter 机器人 所以我可以发布简单的文本推文 但我还没有找到如何使用媒体 图片 发布推文 那么我该怎么做 我看到有人说 您无法使用 twitter A
  • 如何在 asp.net mvc3 中显示矩阵表?

    我正在进行一个小项目 涉及使用实体框架和 asp net mvc3 在矩阵视图中显示多对多关系数据库 涉及到的三个表是SalesPerson 行标签 Product 列标签 和Sales 如何在 asp net mvc3 中开发 生成这种视
  • 将内存中的 24 位图像转换为索引颜色

    我在内存中创建了一个格式为 Format24bppRgb 的图像 我将其保存为 PNG 大小为 24kb 如果我使用 Photoshop 将相同的图像保存为 24 位 PNG 则其大小大致相同 但如果我将其保存为仅 32 色的 8 位 PN
  • 如何生成锯齿状数组的笛卡尔积?

    我在弄清楚如何生成锯齿状数组的笛卡尔积时遇到了一些麻烦 我用谷歌搜索过 但我似乎找不到迭代语言的实现 所以我试图自己解决这个问题 但我遇到了障碍 让我们更清楚地定义问题 假设我有一个数组数组 如下所示 A 1 2 3 4 5 6 我该如何从
  • 会话范围的 Spring MVC 控制器上的 @PreDestroy

    Given a RestController像这样 RestController Scope session public class MyController PreDestroy public void onSessionDestroy
  • 如何在c#中绘制圆角矩形

    我正在使用这段代码来制作一个圆角矩形 但它只绘制了矩形的左上角和右上角 更没有完成下部的矩形 如何让它完整 充实 我应该做出哪些改变 public static Bitmap DrawRoundedRectangle Bitmap Imag
  • GO中如何检查切片是否在切片内部?

    我有以下代码 func main l1 string a b c l2 string a c l2 in l1 我可以使用循环和标志来检查这一点 但是有没有一种简单的方法来检查 l2 是否在 l1 内部 就像 python 命令 l2 in
  • Eclipse 调试 Android 不起作用

    大家好 我在调试 Android 应用程序时遇到 Eclipse 问题 我放置的所有断点都不起作用 应用程序不会停止 它们会因为未放置而被跳过 有办法让它们发挥作用吗 我有Win7 JDK 6u23 64位 Eclipse 3 6 64位
  • 计算MLLIB SVM多类概率

    我想知道如何在多类分类问题中使用 Spark MLLIB SVM 计算概率 文档显示没有这样的功能可用 LibSVM https stackoverflow com questions 7802556 regarding probabili
  • sql join 连接3个表

    这个有点奇怪 有人写了一条在我看来不应该工作的sql 但它确实有效 而且还返回了正确的结果 我写了一个简化的例子 但我认为它说明了要点 drop table client drop table transactions drop table
  • 这个 Urikind.relative 到底是什么意思

    我正在做的是 当我选择一行并单击显示按钮时 我将有一个 datagridview 我想显示图像以及我编写以下代码的一些信息 public partial class WpfWindow Window private UCPersons uc
  • Python:如果目录是符号链接,则 getcwd 和 pwd 给出不同的结果

    如果我的工作目录是符号链接 os getcwd and os system pwd 不给出相同的结果 我想用os path abspath 故意获取我的工作目录 或其中的文件 的完整路径 而不是得到与以下结果相同的结果os path rea
  • 通过 Cisco VPN 更新存储库时,Subversion 报告“格式错误的网络数据”

    我正在使用 Cisco VPN 在 Windows 7 Ultimate 64 位上 连接到我的公司网络 当我检查 svn 存储库时 下载一些文件后 2 或 3 秒我不断收到此错误 该问题发生在 TortoiseSVN 1 5 9 和 Sl
  • 在 Visual Studio 中使用命令行参数进行调试

    我正在 Visual Studio 中开发 C 命令行应用程序 需要使用命令行参数对其进行调试 目前我只是使用我需要的参数运行生成的 EXE 文件 像这样program exe file txt 但这样我就无法调试 有没有地方可以指定调试参
  • SQL 选择最大 BY 组

    WEEK STUDENT CLASS TEST SCORE 1 1 A 1 93 1 1 A 2 97 1 1 B 1 72 1 1 B 2 68 1 1 C 1 93 1 1 C 2 51 1 1 H 1 19 1 2 A 1 88 1
  • 根据分组属性添加新列

    我想在 R 中添加一个新列 将我的子组总结为组 这是我的例子 id c 1 2 2 3 4 4 4 5 5 5 6 6 6 subgroup c lightred lightblue darkblue lightred darkred da
  • 检测处理器的数量

    如何检测 net 中物理处理器 核心的数量 System Environment ProcessorCount 返回逻辑处理器的数量 http msdn microsoft com en us library system environm
  • Linux内核中slab内存管理的缓存着色

    我最近读到有关slab系统的缓存着色的内容 但不明白 为什么为不同slab中的对象添加不同偏移量的缓存着色可以提高性能 我最初的猜测是 具有缓存偏移量的slab分配器 尝试将slab的第一个对象放在不同缓存颜色的内存中 如果客户端从这些sl