【问题标题】:Arithmetical Operations Execution Speed on Linux and WindowsLinux 和 Windows 上的算术运算执行速度
【发布时间】:2012-09-21 22:24:26
【问题描述】:

我用 Java 编写了一个小程序,它对百万对随机数进行除法运算,并计算在运行不同操作系统的同一台机器上除法运算的平均时间。运行程序后,我发现,在 Windows 上,除法运算平均占用 1.6 * 10^-5 ms,而在 Linux(Ubuntu 12.04)上,它几乎少了 8 个因子,即 3.2 * 10^-6 ms。我不确定为什么 Java 程序会在 Ubuntu 而不是 Windows 上运行得更快。只是司机的事吗?还是算术运算在 Ubuntu 上更优化?

【问题讨论】:

  • 您是否安装了相同的 Java 版本?您是否在两个操作系统中使用相同的 vmargs?一个在客户端运行,另一个在服务器 VM 中运行?另外,您确定差异来自除法而不是计算随机数吗?

标签: java linux optimization window


【解决方案1】:

时间本身是如此之小,无法(也不应该)以您的方式来衡量差异。有意义的数据只有在运行更长的时间时才能获得,并且在相同的硬件上等。

【讨论】:

  • 我也尝试了 1 亿个数字,但结果相同。硬件相同,唯一的区别是操作系统。不确定,不同操作系统上的 JRE 是否会导致此问题?
【解决方案2】:

实际计算由处理器完成,完全独立于操作系统。

此外,java 程序在虚拟 java 机中运行。

也许您在 Windows 上运行的线程数量更多,因此程序获得的处理器时间更少。

【讨论】:

    【解决方案3】:

    是的 Dr B Advance OS 课堂作业 1。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-09
      • 2015-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多