【发布时间】:2013-06-08 20:08:16
【问题描述】:
我正在尝试针对速度和内存优化一些 QML 代码。
我知道可以创建一个 Qt 资源文件 (*.rcc) 来减少 *.qml 文件空间。虽然我没有关于此步骤获得多少改进/压缩的数字。
在Qt/QML Compiling libraries and resources查看操作方法
但是,我也知道在some people heads roadmap before 中将 QML 文件预编译为字节码,因此在运行时可以避免此步骤。
那么,有人知道是否可以在任何已发布的 Qt 版本中预编译 QML?或有任何计划?
【问题讨论】:
-
QML 基本上是 JavaScript/CSS。有 HTML/CSS/JavaScript 压缩工具。基本上,它们最小化变量名并去除空白。您可以将这些工具重新用于QML。例如CSS compactor。由于 size 是您的标准,因此使用 compressor 优于 byte-code。例如 LZO、LZMA、GZIP 等。有一个 JIT 版本的 JavaScript 引擎,但每个 CPU 不同。
-
为了避免我解释得不好,目的不只是size,还追求减少加载时间。 @artlessnoise您尝试过任何工具吗? 100% 成功了吗?
-
我没有用 QML 尝试过这些。它们只是许多众所周知的用于减小 HTML/CSS/Javascript 大小的工具。如果速度是您的目标,那么只有 Qt QML 加载器可以让它更快;那不存在afaik。
-
据我所知,Javascript 的使用必须是最少的,不应该用于性能特定的代码。如果您担心 QML 的性能,那么可以使用 QML 分析器对其进行分析并进行相应的更改。
-
QML 不仅仅是 javascript/CSS。它包含 javascript。