0

我正在开发一个针对 iPad 的应用程序。该应用程序不是特别大或特别复杂。

每当我运行应用程序时,它都会在一分钟内构建(即使在 Clean 之后)。每当我尝试分析应用程序时,它会在 Instruments 出现前大约 12 分钟构建。大多数时候 Xcode 显示Building 139 of 139 files.

该应用程序有一些图像资源,使用核心数据,使用五个第 3 方“库”(包括作为源代码文件)。

为什么为 Profile 构建需要这么长时间?如何让 Xcode 构建更快?

编辑:

大部分时间都花在两个字符串如下

CompileC ***.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler

在构建日志中以灰色显示。

4

1 回答 1

1

最后,我在我的案例中找到了原因。

我的应用程序中派生了三个类,NSManagedObject每个类都有大约 200 个属性。

由于数据来自 Web 服务,因此这些类包含如下代码:

- (void) fillFrom:(NSDictionary*)dict
{
    self.id = [dict valueForKey:KEYS[0]];
    self.jobUid = [dict valueForKey:KEYS[1]];
    self.manufacturer = [dict valueForKey:KEYS[2]];
    self.model = [dict valueForKey:KEYS[3]];
    ...
}

显然,我可以做得更好,但当时代码如上。每个属性一个任务。一种方法大约有 200 个作业。

原因:

KEYS是一个定义。

#define KEYS  @[ @"ID", @"JID", ... ]

基本上,200个作业不仅仅是作业。还在幕后创建了大型自动发布的字符串数组的副本。

我将定义更改为

NSString* KEYS[] = { @"ID", @"JID", ..., nil };

然后修改了一些使用 KEYS 的其他代码,瞧,配置文件构建几乎与普通调试的一样快。

不幸的是,我无法准备一个小型测试项目来提交,但发布这个希望我的经验可能对其他人有用。

于 2013-02-21T09:44:53.117 回答