使用系统调用caching污染

使用系统调用caching污染,第1张

概述使用系统调用caching污染

朋友们,我想研究由于 *** 作系统导致的caching污染对应用程序性能的影响。


为此我写了一个小的定制基准程序。

1. malloc an array of size = l1 data cache-size 2. repeat ... sweep this array from start to end (hit-rate = 1.0) 3. *** perform a system call that thrashes l1 data cache *** 4. sweep the array once again (expected hit-rate = ~0.7 ---> 1.0)

algorithm的第2步重复读取完整的数组。 希望这个数组会留在caching中,因此命中率为1。

在执行系统调用之后,我尝试再次读取caching。 但我认为 *** 作系统已经驱逐属于用户的一些caching行。

正如你所看到的,程序依靠系统调用来驱逐数据caching中的许多用户数据行。 我怎样才能做到这一点?

在linux中的工作者线程

微软会在未来的版本中淘汰Win32 API吗?

如何定义windows x86堆栈中的堆栈?

访问硬盘的未分配空间

光秃秃的骨头OS内核编程

我假定系统调用应该是文件相关或stream相关。

如何跟踪所有的后代进程清理?

粘滞便笺是如何工作的?

*** 作系统如何知道缺页的磁盘地址?

是否可以让我的应用程序显示一个时间,而不pipe系统时间是否被修改

*** 作系统如何处理Python脚本的Python和subprocess?

系统调用到系统调用对L1缓存的影响不尽相同。 一种方法是循环执行几个不同的系统调用,并测量每个系统调用的影响(包括例如与write()相关的I / O相关调用,您可以在其中调整缓冲区大小,从而影响缓存)。

您可能希望避免将系统调用实现为vsyscalls (例如gettimeofday() ),因为它们不需要切换到内核空间。 参见[ 1,2 ]。

这听起来像你想要隔离L1d上的效果,所以你可能需要小心的另一件事:在第二步中,在通过阵列循环后,L1i缓存将被填充。 系统调用完成后,L1d 和 L1i可能都被污染了,所以你也可能会看到i-cache未命中的性能影响。

为了获得更好的细粒度测量,您可以使用硬件性能计数器,具体取决于您的体系结构。

总结

以上是内存溢出为你收集整理的使用系统调用caching污染全部内容,希望文章能够帮你解决使用系统调用caching污染所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1155011.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存