3

这更像是一个概念问题。想知道你们中是否有人遇到过在执行一组算法时捕获由 JVM 传递给 OS 的指令的任何方法。

问题是,如果我们说应用程序的性能,它有太多变量,例如进程数、CPU 数、CPU 速度、可用内存等。我正在寻找的是某种抽象所有这些变量的方法依赖关系,所以基本上这一切都归结为JVM传递的指令数量,并且根据其他变量,这些指令可以更快或更慢地执行。

有什么方法可以挂钩这样的代码可能是本机的并获取这些信息?

我知道它真的很抽象,但不确定我是否可以用更简单的形式来表达。

谢谢

4

1 回答 1

1

你真的不能那样做。

曾几何时,您可以计算时钟周期并计算给定(小)代码段的速度(我清楚地记得给定 x86 汇编程序命令的毫秒持续时间在我使用的参考资料中可用,它仅对英特尔有效8086 CPU,但是)。

但是现代硬件做了太多种类的优化(更不用说软件优化),没有简单的方法可以“抽象掉”这些东西。甚至关系也可能不同(计算可能比架构 #1 中的内存访问快 10 倍,在架构 #2 中快 20 倍)。仅不同的 CPU 缓存级别大小就会对一段代码的实际速度产生巨大影响。

但是,如果您找到了一种方法,请务必申请专利并将其隐藏起来。你应该可以用它赚很多钱。

于 2012-06-06T08:39:10.190 回答