Qt上的QML应用程序工作缓慢,JIT被禁用

问题描述 投票:5回答:4

我正在为iPhone开发基于QML的应用程序,在macbook IOS 11(Sierra)上工作。我使用Qt 5.9.1 build,使用最新版本的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可以帮助解决这个问题?请帮忙,真的卡在这里..

ios performance qt qml jit
4个回答
2
投票

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

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

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


2
投票

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

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


1
投票

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


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.