Qt上的QML应用程序运行缓慢,JIT被禁用

时间:2017-10-12 18:54:49

标签: ios performance qt qml jit

我正在开发基于 QML 的iPhone应用程序,正在开发macbook IOS 11 (Sierra)。我使用 Qt 5.9.1 版本,使用最新版本的 xCode 。一切都运行正常,但在"应用程序输出"有警告 " JML已针对QML禁用。属性绑定和动画将非常慢。访问https://wiki.qt.io/V4以了解您平台的可能解决方案。" 我尝试通过编辑qv4global_p.h文件来启用JIT,如上面的网页所述,但它没有帮助。 我使用IOS模拟器(带有IOS 11.0的iPhone 6,7)进行调试和测试,动画效果(如转换,不透明度变化,按钮点击)真的很慢而且滞后,有关输出控制台中qml对象的手动更新的消息,类似"进行手动更新..." 。我没有iPhone,所以我无法检查真实设备上是否存在同样的问题,但似乎是这样,因为我已经读过simillar主题,而且我没有找到任何信息。

那么,有没有解决这个问题的方法,如何在IOS上获得流畅,正确的qml控件行为?也许带商业许可证的Qt Quick Compiler可以帮助解决这个问题?请帮忙,真的卡在这里..

4 个答案:

答案 0 :(得分:2)

您无法在qv4global_p.h上启用JIT,如果您这样做,您可以在插入Mac的设备上编译并运行您的应用程序,但是当您拔掉它时,您的应用程序将停止并且不要&# 39;不再运行,问题来自Apple,

  

3.3.2应用程序可能无法下载或安装可执行代码。如果所有脚本,代码和解释器都打包在应用程序中而未下载,则解释的代码只能在应用程序中使用。上述唯一的例外是由Apple的内置WebKit框架下载和运行的脚本和代码。

试用Qt商业许可的试用版并测试您的应用。 在我的情况下,经过一些测试后,我在objectivC中构建了我的应用程序

答案 1 :(得分:2)

在ios中你不能使用JIT编译器,但你可以提前尝试编译:

http://doc.qt.io/qt-5/qtquick-deployment.html#qml-caching-for-deployment-preview

答案 2 :(得分:1)

所以我试图在真实设备上启动我的应用程序,它是安装了iOS 9.0的iPhone 6S,之后也更新到iOS 11.0.3。应用程序正常运行,至少我看不到任何滞后,性能不佳或动画缓慢,尽管有关于JIT的警告消息。希望它在使应用程序更复杂之后能够完美地运行,因为现在它只是没有任何有用后端的GUI。如果有可能在其他较旧版本的iPhone或平板电脑上检查这一点,我会这样做并写在这里。附:在紧急情况下有Qt快速编译器,我还没有尝试过。

答案 3 :(得分:1)

从Qt 5.11开始,Qt Quick Compiler随开源Qt许可证一起提供。您也可以在iOS上使用它来提前编译QML和JS源。借助V-Play Engine,您还可以获得Qt iOS和Android应用程序的原生外观。