0

我已经开始了一个新项目,并测量了从我点击播放开始编译到我在 iPhone 模拟器上看到它的时间(模拟器已经打开 - 所以没有计算启动它所需的时间)。

第一次编译需要 1:56 分钟。因为这是第一次,我猜它会做一些事情,它不会为将来的编译我试一试,这次编译时间下降到 1:15 分钟。

任何认识我并关注我帖子的人都知道,我喜欢在很多方面比较平台。所以我做了。我与街区里的新手——ReactNative 进行了比较。React 初始编译耗时 32 秒。第二次编译耗时 10 秒。

值得一提的是,ReactNative 项目是从 xCode 运行的,而 Titanium 脚本会进行预构建。但是,如果查看 react xCode 项目和 Titnaium xCode 项目,您会发现 Titanium 在项目中有更多的“包袱”。

我知道我可以使用 LiveView - 但这并不总是您想要或需要的。

编译时间对开发过程很重要。所以我想知道为什么 Titanium 编译需要这么长时间,以及是否有任何方法可以缩短该时间(显着)?

4

3 回答 3

2

如果您现在认为它很慢,那么您应该以前看过它。:)

每次构建应用程序时都会发生很多事情。我已经优化了大部分构建过程,但是我可以做很多事情来加快构建过程的逻辑。

每次您构建时,我们都必须验证您的会话,我们必须扫描所有 Xcode、iOS 模拟器等,我们必须检查大约 30 件事情,看看我们是否需要强制重新构建,等等。另外,如果您有一个 Alloy 应用程序,则构建必须触发 Alloy 编译器。根据应用程序的类型,我们会解析您所有代码的 AST 多达 3 次。

我们可以做很多事情来加快速度。我们可以缓存很多东西。我们可以内联很多子处理。有很多不必要的磁盘 I/O。有很多不必要的 AST 解析。

好消息是我正在积极努力改进这一点。构建将变得越来越快。

于 2016-01-19T18:25:26.907 回答
1

Titanium 在第一次构建或更改为tiapp.xml. 在这种情况下,我们完全重建 Xcode 项目。事实上,在 ReactNative 的情况下,Xcode 项目就在那里,但这也意味着您必须自己管理 Xcode 设置。

每次以下编译都应该是几秒钟。Alloy 项目需要更长的时间,因为 atm 它仍然编译完整的 Alloy 项目。这也应该在下一个版本中变得增量。

请检查您的日志。它应该在某个时候报告它是否正在进行完全重建以及为什么。

于 2016-01-19T11:17:37.790 回答
0

根据您的项目,“空”项目的 1 分钟非常长。并且没有任何代码更改的重新编译应该不会花费那么长时间(在我的例子中是几秒钟)。

您使用哪个 SDK 版本进行测试?有一个可能相关的错误(https://jira.appcelerator.org/browse/ALOY-1340“Alloy选择性编译自 ALOY-1332 以来已损坏”)。

你是用 Appc Studio 还是命令行工具编译?

看看这篇旧文章: http: //jolicode.com/blog/alloy-selective-compilation-for-an-even-faster-titanium-development-process 他们也对编译时间进行了一些测试。

于 2016-01-17T11:51:20.413 回答