Java应用程序在比PC更好的PC上使用相对更多的CPU

时间:2016-06-13 21:40:23

标签: java windows performance properties performance-testing

我有一个棘手的问题。我有一台配备i5-3470处理器的PC和一台配备i5-5200U处理器的笔记本电脑。当然,3470 cpu(在我的桌面上)速度要快得多,即使使用单核(参见http://cpu.userbenchmark.com/Compare/Intel-Core-i5-5200U-vs-Intel-Core-i5-3470/m22169vs2771)。然而出于某种原因,在我的PC上运行相同的Java程序时,需要比我的笔记本电脑(具有5200U处理器)更多%的CPU(从taskmanager读取值时)。

现在我不太确定原因是什么。程序(使用JavaFX的媒体播放器类播放音频的音频播放器)在我的笔记本电脑上以平均0.4%的CPU运行,峰值达到1%,在我的电脑上以峰值运行0.5%达到1.8%。这显然听起来不是一个巨大的差异,但考虑到处理器的两个规格,这是非常意外的行为。我列出了一堆事实来帮助你们诊断为什么会发生这种情况:

- 两个系统都具有完全相同的java版本

- 两个系统使用完全相同的JVM选项(见下文)

- 两个系统使用完全相同的程序& .jar文件

- 从Netbeans IDE或Netbeans IDE之外启动它并不重要

- 就可见而言,两个系统具有非常相同的系统属性(见下文)

- PC也使用稍多的RAM(大约3mb RAM),这可能是由某个系统属性引起的。程序启动时会调用这段代码:System.setProperty(" sun.java2d.noddraw"," true");这是一个java系统属性,在某些系统上可以节省大约5mb的RAM。

你能帮我解决一下为什么我的电脑使用i5 3470的CPU使用率高于使用5200U的笔记本电脑?是否与下面列表中不可见的某些系统属性有关,但是在一个系统上激活而在另一个系统上没有激活?还是有其他原因?非常感谢提前帮助。

为什么这很重要

由于实验原因,该程序应该以非常低的形式运行。在PerfMon上也可以看到cpu时间的差异,这比taskmanager更准确。您希望该程序在3470处理器上以接近0.1%的速度运行,但它没有。

JVM选项:

-Xmaxjitcodesize2500k -XX:MaxPermSize = 7m -XX:MinHeapFreeRatio = 3 -XX:MaxHeapFreeRatio = 7 -Xms5m -Xmx130m -XX:+ UseParNewGC -XX:+ CMSClassUnloadingEnabled

相关系统属性:

java.awt.graphicsenv:sun.awt.Win32GraphicsEnvironment

os.arch:amd64

os.name:Windows 8.1

sun.java2d.noddraw:true

sun.jnu.encoding:Cp1252

java.library.path:C:\ Program Files \ Java \ jdk1.8.0_77 \ jre \ bin; C:\ Windows \太阳\的Java \ BIN; C:\ WINDOWS \ SYSTEM32; C:\ WINDOWS; C:\ ProgramData \ ORACLE \ Java \ javapath; C:\ Program Files(x86)\ Intel \ iCLS Client \; C:\ Program Files \ Intel \ iCLS Client \; C:\ Windows \ system32; C:\ Windows; C:\ Windows \ System32 \ Wbem; C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \; C:\ Program Files \ Intel \ Intel(R)管理引擎组件\ DAL; C:\ Program Files(x86)\ Intel \英特尔(R)管理引擎组件\ DAL; C:\ Program Files \ Intel \ Intel(R) 管理引擎组件\ IPT; C:\ Program Files(x86)\ Intel \ Intel(R) 管理引擎组件\ IPT; C:\ Program Files \ Intel \ WiFi \ bin \; C:\ Program Files \ Common Files \ Intel \ WirelessCommon \; C:\ Program Files(x86)\ Skype \ Phone \;

sun.management.compiler:HotSpot 64位分层编译器

java.awt.printerjob:sun.awt.windows.WPrinterJob

file.encoding:UTF-8

sun.arch.data.model:64

awt.toolkit:sun.awt.windows.WToolkit

java.vm.info:混合模式

sun.io.unicode.encoding:UnicodeLittle

sun.cpu.endian:little

sun.desktop:windows

sun.cpu.isalist:amd64

0 个答案:

没有答案