英特尔 XDK 慢 APK

Intel XDK Slow APK

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

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

为什么在手机上这么慢而在 PC 上却没有?可以预防吗?提前致谢!

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

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

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

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

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

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