linux - 用户模式与内核模式的 RAM 性能比较

标签 linux performance memory kernel ram

与内核模式不同,用户模式由于使用虚拟内存而使用地址转换。因此,似乎必须在发生访问时转换内存地址(即使没有 TLB 未命中)进行权衡。

由于内核模式直接访问 RAM 而无需任何地址转换,如果我们在内核模式而不是用户模式下运行代码,RAM 中的性能会有所提升吗?

最佳答案

Is there any performance gain in RAM if we run a code in Kernel mode rather than User mode?

可能不会。 MMU总是被使用。它只是针对内核模式和用户模式进行了不同的配置(因此内核代码的“地址转换”可能是某种“身份”功能)。

CPU cache考虑因素比 MMU 重要得多。缓存未命中可能会花费数百个周期或纳秒(从 RAM 模块获取数据)。另外,context switches成本高昂。

但是您需要基准测试。见结尾Answers section of P.Norvig page .

(事实上,内核地址空间没有任何主要的 page faults ;我猜想 - 但不是真的知道 - 在某些硬件上它可能有次要页面错误)

另请阅读 Unikernel方法。

关于linux - 用户模式与内核模式的 RAM 性能比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35015944/

相关文章:

linux - 在多个脚本的变量赋值中附加新路径

linux - 在 Bash 中修改子字符串而不改变字符串

linux - 从tar安装erlang导致错误,想知道如何指定文件夹

c - perfstat_process 未在 AIX 6.1 上的 libperfstat.h 中声明

python - 集合运算的奇怪表现

java - 执行 jar 时出错 - 无法分配文件描述符表

performance - 大量数据的分页和排序

c++ - SIGSEGV 在 C++ 循环中有一个非常大的数组

C++ 结构内存分配

Python 无限整数