构建Profile时需要很长的构建时间

时间:2013-02-14 05:59:01

标签: ios xcode build instruments

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

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

该应用程序具有一些图像资源,使用Core Data,使用五个第三方“库”(包含在源代码文件中)。

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

修改

大部分时间花在两个字符串上,如下所示

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

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

1 个答案:

答案 0 :(得分: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和瞧的代码,配置文件构建几乎和普通的调试一样快。

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