14

Qt 5.8 应该带有可选的提前使用 qtquick 编译器,但它带有一个 sort-of-a-jit-compiler,该功能默认启用并将编译的 QML 文件缓存在磁盘上以提高启动性能并减少内存使用。

然而,该功能带来了严重的 错误,这些错误大大减少了,或者在我的情况下甚至完全否定了它的好处,因为我从一开始就没有启动时间问题,而且测试也没有发现任何内存使用方面的改进。

所以我想做的是在我的项目中选择退出该功能,但我似乎没有找到如何做到这一点。回到 Qt 5.7.1 不是一个选项,因为我的项目依赖于 5.8 引入的其他新功能。

4

2 回答 2

15

添加QML_DISABLE_DISK_CACHE(设置为 1)到您的环境变量。您应该能够在您的应用程序中通过--在加载 QML 内容之前qputenv将其放在某处。main

于 2017-01-30T08:59:09.470 回答
8

感谢 peppe 通知我们环境变量,但qputenv()仅将 aQByteArray作为值参数,因此1不起作用。

有效的两个选项:

qputenv("QML_DISABLE_DISK_CACHE", "1"); // or
qputenv("QML_DISABLE_DISK_CACHE", "true");

这成功禁用缓存并防止相关的错误出现。

于 2017-01-30T16:11:12.780 回答