这更像是一个概念问题。想知道是否有人在执行一组算法时遇到任何方法捕获JVM传递给OS的指令。
问题是如果我们说应用程序的性能,它有太多的变量,如进程的#,CPU的数量,CPU的速度,可用的内存等等。 我正在寻找的是抽象所有这些依赖项的一些方法,所以基本上它都归结为JVM传递的指令数量,并且根据其他变量,这些指令可以更快或更慢地执行。
有没有办法可以挂钩这些代码可能是原生的并获取这些信息?
我知道它真的很抽象,但不确定我是否可以用任何更简单的形式。
由于
答案 0 :(得分:1)
你真的不能那样做。
曾几何时你可以计算时钟周期并计算给定(小)代码的速度(我清楚地记得给定的x86汇编程序命令在我使用的引用中可用的毫秒持续时间,它只有效但是,对于Intel 8086 CPU。
但现代硬件做了很多种优化(更不用说软件优化),没有简单的方法来“抽象”那些东西。甚至关系可能也不同(计算可能比架构#1中的内存访问速度快10倍,而架构#2中的速度快20倍)。单独使用不同的CPU缓存级别大小会对一段代码的实际速度产生巨大影响。
但是如果你找到了办法,一定要申请专利并将其隐藏起来。你应该可以赚很多钱。