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