英特尔XDK慢APK

时间:2017-04-14 22:03:39

标签: javascript android cordova intel-xdk

我一直在使用JS在英特尔XDK上构建一个cordova应用程序。它每隔几毫秒使用setInterval调用一个函数。

当我在仿真或chrome中播放我的应用程序时,它的工作非常顺利。没有任何问题。但是,当我将应用程序构建到Android手机(Galaxy S7)上时,它的速度约为4倍。

有没有理由说它为什么在移动设备上如此之慢而在PC上却没有?可以预防吗?提前谢谢!

var func = function () {
// code code code
}
setInterval(func,1);

在桌面上,这将每4毫秒触发一次,而在移动设备上则需要大约20-30毫秒,并且经常变化超常。

1 个答案:

答案 0 :(得分:1)

您假设所有JavaScript运行时和处理器都相同。不幸的是,事实并非如此。您的移动设备的计算资源远不如您的笔记本电脑;笔记本电脑/台式机中的运行时具有更多可用资源,例如更快,更强大的处理器,更多RAM等。同样,移动设备中的JavaScript运行时运行的JavaScript运行时已针对电池效率进行了优化,并具有与笔记本电脑/台式机上运行的性能优化运行时相比,资源减少了,可以感觉到几乎无限的资源。即使Android版本中的差异也会产生影响,特别是如果您将Android 4.x设备中的JavaScript运行时与之后的版本设备进行比较。

没有规则说JavaScript事件循环在所有实现中都能处理4毫秒,因此您不能假设您在平台A上测量的性能在平台B上可以重现。平台之间存在真正的差异以及影响结果的限制和设计目标的真正差异。

此页面可以很好地描述可能出现的一些问题> https://javascript.info/settimeout-setinterval#summary<此演示文稿可能有助于理解有关JavaScript事件循环的更多信息> http://2014.jsconf.eu/speakers/philip-roberts-what-the-heck-is-the-event-loop-anyway.html<

当您在英特尔XDK模拟选项卡中运行应用程序时,您将在桌面Chromium浏览器中运行。它模拟硬件,在代码中调试逻辑非常方便,仅此而已。