Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance linux上的akka性能与windows上的编译_Performance_Scala_Akka - Fatal编程技术网

Performance linux上的akka性能与windows上的编译

Performance linux上的akka性能与windows上的编译,performance,scala,akka,Performance,Scala,Akka,我在我的windows机器上安装了Scala IDE。当我在同一台机器上运行测试程序时,我得到了一些性能数据 为了在Linux机器上运行相同的程序,这是一台8核32 GB的机器,我将生成的类文件和scala+akka JAR移植到Linux机器上 Linux机器使用服务器版Java,windows机器使用客户端版Java 当我在Linux机器上运行相同的程序并正确设置所有路径时,我的性能比windows机器差 为什么会这样?该程序能够正常运行,但在高端计算机和服务器版上的性能较差 这是由于编译和

我在我的windows机器上安装了Scala IDE。当我在同一台机器上运行测试程序时,我得到了一些性能数据

为了在Linux机器上运行相同的程序,这是一台8核32 GB的机器,我将生成的类文件和scala+akka JAR移植到Linux机器上

Linux机器使用服务器版Java,windows机器使用客户端版Java

当我在Linux机器上运行相同的程序并正确设置所有路径时,我的性能比windows机器差

为什么会这样?该程序能够正常运行,但在高端计算机和服务器版上的性能较差

这是由于编译和运行环境的差异造成的吗?我能做的就是调查这种行为的原因


编辑:windows环境,其中编译是32位的,linux机器上的java是64位服务器。这对性能有什么影响吗?

如果您在两台机器上发布Java配置,即JVM版本和在两种环境下传递给
Java
命令的所有标志,这将很有帮助

另外,您如何衡量性能,以及您得到了什么价值?是否还涉及其他内容,如I/O、网络流量等。?如果没有,您的程序中使用了哪些算法?它是一个计算然后终止的程序,还是一个运行到关机的服务器程序

您应该特别关注内存配置(如@alex23所建议的)和
-server
标志。另外,确保Linux环境使用的JVM与Windows环境来自同一制造商。Windows通常带有Sun JVM,而有些Linux可能仍然使用旧的Oracle JVM。在命令行上尝试
java-version

此外,与其比较复杂程序的结果,不如先尝试一个更简单的程序。尝试确定启动JVM的开销与Java/Scala代码的有效运行时间


基于Windows的构建会导致Linux机器上出现性能问题的想法听起来极不可能。您可以通过在Linux机器上编译软件并运行它来轻松检查此问题。

谢谢。但我最主要的怀疑是,如果我错过了要放在LinuxBox上的东西。e、 g.a jar/lib等。由于我在linux box上没有正确的scala设置,我直接用命令行调用类文件,并在类路径中使用正确的jar(就像在我的scala IDE eclipse env中一样),简单地说,这应该至少提供与我的windows机器相同的性能,不是吗?是的,通过sbt运行它很重要吗?它已经使用正确的类路径运行,我已经给出了-Xms2048m-Xmx2048M-X:+UseParNewGC-server-XX:+useConMarkSweepGC-XX:+CMSIncrementalMode选项,如果您的程序运行时间很短(例如运行几秒钟),那么客户端配置可能比服务器配置快(客户端模式启动花费的时间要少得多,并且客户端可以更早地实现代码的jit)。您能提供一个示例来验证您的问题吗?您好,windows java版本:1.6.0_29 linux java版本:1.6.0_12这有什么区别吗?使用的选项:-Xms2048m-Xmx2048M-XX:+UseParNewGC-server-XX:+UseConcMarkSweepGC-XX:+cmsincrementalmode这些版本看起来不错;它们不应该有什么区别。也许您可以尝试一些找出一台机器为什么慢并不容易,特别是在给出了一点细节的情况下。