用于执行一组算法的 JVM 指令



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

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

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

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

谢谢

你真的做不到。

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

但是现代硬件进行了如此多的优化(更不用说软件优化了),以至于没有简单的方法来"抽象"这些东西。甚至关系也可能不同(计算速度可能比体系结构 #1 中的内存访问快 10 倍,体系结构 #2 中的内存访问速度快 20 倍)。单独的 CPU 缓存级别大小就可以对一段代码的实际速度产生巨大影响。

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

最新更新