【问题标题】:Intel XDK Slow APK英特尔 XDK 慢速 APK
【发布时间】:2017-04-18 00:07:11
【问题描述】:

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

当我在模拟器或 chrome 中播放我的应用程序时,它运行得非常顺利。没有任何问题。但是当我将应用程序构建到 Android 手机 (Galaxy S7) 上时,它的速度大约是原来的 4 倍。

有什么原因导致它在移动设备上如此缓慢而在 PC 上却没有?可以预防吗?提前致谢!

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

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

【问题讨论】:

    标签: javascript android cordova intel-xdk


    【解决方案1】:

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

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

    此页面对可能出现的一些问题进行了很好的描述 > https://javascript.info/settimeout-setinterval#summary http://2014.jsconf.eu/speakers/philip-roberts-what-the-heck-is-the-event-loop-anyway.html

    当您在 Intel XDK Simulate 选项卡中运行应用程序时,您正在桌面 Chromium 浏览器中运行。它模拟硬件,只是为了方便调试代码中的逻辑而已。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多