cost 442 ms
如何确定我的程序中的缓慢是否是CPU缓存问题(在Linux上)? - How can I pinpoint if the slowness in my program is a CPU cache issue (on Linux)?

我目前正试图在我的一个C程序中理解一些非常奇怪的行为。 显然,在它结尾处添加或删除看似无关紧要的行会大大影响程序其余部分的性能。 我的程序看起来有点像这样: 理论上,主函数末尾的fclose(input)行无关紧要,因为OS无论如何都应该在程序结束时自动关闭文件。 但是我观察到 ...

为什么cachegrind不是完全确定的? - Why isn't cachegrind completely deterministic?

受SQLite的启发 ,我正在寻找使用valgrind的“cachegrind”工具来进行可重现的性能基准测试。 它输出的数字比我发现的任何其他计时方法稳定得多,但它们仍然不具有确定性。 举个例子,这是一个简单的C程序: 如果我编译它并在cachegrind下运行它,我得到以下结果: ...

在OpenJDK JVM上运行cachegrind - Running cachegrind on OpenJDK JVM

我想使用cachegrind在OpenJDK JVM上进行一些性能分析。 (顺便说一句,如果这不是一个好主意,我想知道为什么。) 问题在于它会不断触发JVM中的断言。 所以我该怎么做才能使用cachegrind运行。 否则,请告诉我为什么这行不通。 并且,如果您可以建议使用cach ...

我不明白cachegrind与perf工具之间的缓存缺失计数 - I don't understand cache miss count between cachegrind vs. perf tool

我正在研究使用简单的微基准测试缓存效果。 我认为如果N大于缓存大小,那么缓存在每个第一个读取缓存行都有一个未命中操作。 在我的机器中,缓存行大小= 64Byte,所以我认为完全缓存发生N / 8未命中操作和缓存研磨显示。 但是,perf工具显示不同的结果。 它只发生34,265次高 ...

如何在c ++中编写指令缓存友好程序? - How to write instruction cache friendly program in c++?

最近Herb Sutter就“现代C ++:你需要知道什么”发表了精彩演讲。 本次演讲的主题是效率以及数据位置和访问内存的重要性。 他还解释了内存(数组/向量)的线性访问如何被CPU所喜爱。 他从另一个经典参考“Bob Nystrom的游戏表演”中就此主题举了一个例子。 阅读这些文章 ...

为什么cachegrind忽略了L3缓存,这与文档相矛盾? - Why is the L3 cache ignored by cachegrind, contradicting documentation?

我想了解人们如何进行缓存优化,我被朋友建议cachegrind作为实现此目标的有用工具。 Valgrind的是一个CPU模拟器,假定一个2级高速缓存,如所提到这里 ,使用cachegrind时 Cachegrind模拟程序如何与机器的缓存层次结构和(可选)分支预测器进行交互。 ...

你如何解释cachegrind输出缓存未命中? - How do you interpret cachegrind output for caching misses?

出于好奇,我运行编码了几个不同版本的矩阵乘法,并对它运行cachegrind。 在下面的结果中,我想知道哪些部分是L1,L2,L3未命中和引用以及它们的真正含义是什么? 下面是我的矩阵乘法代码,万一有人需要。 矩阵乘法码。 ...

同一程序在多次运行之间的不同缓存未命中计数 - Different cache miss count for a same program between multiple runs

我正在使用Cachegrind来检索没有libc编译的静态程序的高速缓存未命中数(只是调用我的主函数的_start和asm中的退出syscall)。 该程序是完全确定性的,指令和内存引用不会从一次运行更改为另一次运行。 缓存与LRU作为替换策略完全关联。 但是,我注意到错过的次数有时会 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM