Ore*_*ren 0 java caching cache-control low-level cpu-cache
有没有办法在java中检查特定对象是否在CPU缓存中?有没有办法测试读/写其中一个字段是否会导致缓存未命中?
我以前编写过java程序,但不是复杂程序,现在我必须在java中做一些学术研究.
如果这是不可能的,有没有一种通用的方法来模拟这种事情?这在低级编程中是否可行,例如C?
TL; DR - 没有
在Java中,JVM使您免受CPU的攻击,因此这种低级别信息在设计上不会暴露给程序.
此外,即使您使用较低级别的语言(例如,C)并使用了一些程序集级别的黑客攻击,我也很难想象您可以从哪里获得有关缓存状态的有意义数据,原因如下:缓存是动态的 - 新数据是连续加载到其中并且(较旧的)数据不断从其中刷新.在每个给定的时刻,你有几个进程在你的CPU上运行,每个进程产生至少一个线程(可能更多) - 所有这些线程的组合活动会影响缓存和存储在其中的数据.
因此,即使您可以获得问题的Y/N答案,is object X in cache那么这个答案将在您获得它的那一刻就过时了.
| 归档时间: |
|
| 查看次数: |
430 次 |
| 最近记录: |