Android(1Ghz Snapdragon)的相同代码执行速度比使用3.3 Ghz Core 2 Duo的PC(桌面应用程序)快2倍(来自PC的类被复制到Android项目)。用Win7和Debian测试。 System.currentTimeMillis()为一个(主)计算方法确定的时间。为什么会发生这种情况,我该怎么做才能解决它?
UPD1。第一个应用程序在真正的Android设备上运行,第二个 - 在JRE
UPD2。在那部分应用程序中,我尝试比较,只使用简单的数学运算和BigDecimal运算(乘法,sqrt,除法等)。想法 - 按gauss-legendre algorithm
计算pi答案 0 :(得分:1)
您需要更具体地了解您正在采取哪些措施来监控此问题。有很多因素可以影响这一点。如果你在模拟器上运行,请忘记它 - 它非常慢,那里真的没有比较。但是,我觉得你在谈论在JVM中运行的一个应用程序作为标准Java应用程序和在Dalvik上运行的另一个应用程序,但在那里,你真的无法比较。不同的框架具有不同的库和以不同方式实现的不同调用。更不用说Dalvik的优化程度与标准JVM不同,等等。
您需要向我们提供更多信息,以便我们尝试给您解释,但我怀疑您正在尝试比较两件真正无法比较的事情。
答案 1 :(得分:0)
我认为,因为Android设备的处理器架构与PC不同,所以PC上的CPU需要模拟Android,因此可以进行更多的处理。