是什么让Appcelerator Titanium项目编译时间如此之长?

时间:2016-01-17 04:51:38

标签: appcelerator appcelerator-titanium appcelerator-studio

我已经开始了一个新项目并测量了从我开始玩到开始编译直到我在iPhone模拟器上看到它的时间(模拟器已经打开 - 所以不计算启动它所需的时间)。< / p>

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

任何了解我并关注我帖子的人都知道我喜欢在很多方面比较平台。所以我做了。我和街区的新孩子ReactNative进行了比较。 React初始编译耗时32秒。第二次编译需要10秒钟。

重要的是要提到ReactNative项目是从xCode运行的,而Titanium脚本是预先构建的东西。但是如果看一下反应xCode项目和Titnaium xCode项目,你会发现Titanium在项目中有更多的“包袱”。

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

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

3 个答案:

答案 0 :(得分:1)

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

每次后续编译应该是几秒钟。合金项目需要更长的时间,因为它仍然编译完整的Alloy项目。这也应该在下一个版本中增加。

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

答案 1 :(得分:1)

如果你认为它现在很慢,你应该先看过它。 :)

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

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

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

好消息是我正积极致力于改善这一点。构建将变得更快,更快。

答案 2 :(得分:0)

根据您的项目,“空”项目的1分钟很长。没有任何代码更改的重新编译应该花费不长的时间(在我的情况下只需几秒钟)。

您使用哪个SDK版本进行测试?有一个可能与ALOY-1332相关的错误(https://jira.appcelerator.org/browse/ALOY-1340“合金选择性编译被破坏了 “)。

您是否正在使用Appc Studio或命令行工具进行编译?

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