【问题标题】:Can QML caching in Qt 5.8 be disabled for a particular project?可以为特定项目禁用 Qt 5.8 中的 QML 缓存吗?
【发布时间】:2017-01-29 15:31:42
【问题描述】:

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

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

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

【问题讨论】:

    标签: qt caching configuration qml qt5.8


    【解决方案1】:

    QML_DISABLE_DISK_CACHE(设置为1)添加到您的环境变量中。您应该可以通过 qputenv 在您的应用程序中执行此操作——在加载 QML 内容之前将其放在 main 的某个位置。

    【讨论】:

      【解决方案2】:

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

      有效的两个选项:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多