为什么人们坚持使用琐碎的数学问题,比如在Fibonacci序列中找到语言基准的数字?这些通常不会优化到相对论速度吗?通常在I/O,系统API调用,对字符串和结构的操作,处理大量数据,抽象面向对象的东西等方面,瓶颈不是首要任务吗?
这是旧时代的回归,当时我们称之为基本数学的编译器技术仍在快速发展.
现在,编译器演化更侧重于利用新的指令进行小众操作,64位数学等等.
但是,当您首次启动Java时评估热点编译器的效率,以及评估.NET与C/C++的效率时,您提到的微基准测试很有用.
你建议I/O和系统调用可能是瓶颈是正确的,至少在某些问题上是这样.但我注意到你提出了字符串操作.一个人不相关的微观基准是另一个人的关键绩效指标.
编辑:ps,我还记得使用linpack和其他微基准来比较JVM的版本,并比较JVM的供应商.从v4到v5,perf有一个大的跳跃,我猜JIT编译器变得更有效.此外,IBM的JVM在Windows-x86上领先Sun公司.