linux - 有没有办法在 Linux 系统上禁用 CPU 缓存(L1/L2)?

标签 linux caching gcc cpu

我正在 Linux 系统(在 Intel Core i7 4500U 上运行)上分析一些代码以获得仅执行成本的时间。该应用程序是来自 libmpeg2 的演示 mpeg2dec。我试图获得 mpeg2 执行时间的概率分布。然而,我们希望看到缓存关闭时的原始执行成本。

有没有一种方法可以通过 Linux 命令或通过 gcc 标志禁用系统的 cpu 缓存?甚至将 cpu (L1/L2) 缓存大小设置为 0KB?甚至添加一些更改为禁用缓存的代码?当然,无需修改或重建内核。

最佳答案

看到这个 2012 线程,有人发布了一个微型内核模块源代码以通过 asm 禁用缓存。

http://www.linuxquestions.org/questions/linux-kernel-70/disabling-cpu-caches-936077/

关于linux - 有没有办法在 Linux 系统上禁用 CPU 缓存(L1/L2)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28948542/

相关文章:

caching - gitlab-runner kubernetes 缓存被忽略

c++ - GCC:__attribute__ ((format (printf, x, y)) 在使用可变参数宏调用函数时似乎不起作用

.Net Core MemoryCache PostEvictionCallback 无法正常工作

gcc - 使用 Cmake 的混合语言 C++、C 和 Fortran 编译

c++ - fatal error : 'charconv' file not found in clang 6. 0 与 -std=c++17

c - Makefile,添加位于父目录中的头文件(不允许在内部移动!)

linux - 如何从内核识别消息并将消息发送到应用程序?

c - 在读取期间完全清除调制解调器模块串行缓冲区

linux - 查找应用程序在什么状态或 OOM 分数值时被杀死

http - Varnish +静态HTML页面