块内的时间分析代码

时间:2014-03-16 08:57:54

标签: objective-c profiling objective-c-blocks instruments

如何使用Instruments分析块内的代码?现在我只能看到Block的总时间,但是无法进入块内部以查看时间的消耗。

例如,案例1:

if (completionBlock) {
    completionBlock(mutableManagedObjects, mutableBackingObjects);
}

和案例2:

[backingContext performBlockAndWait:^{

    if (backingObjectID) {

        backingObject = [backingContext existingObjectWithID:backingObjectID error:nil];
    } else {
        backingObject = [NSEntityDescription insertNewObjectForEntityForName:entity.name inManagedObjectContext:backingContext];

    }
}];

在案例1中,我无法在函数内部进行分析并找出消耗的时间;它只显示了Block的总时间。在案例2中,我只得到总块数的百分比;它没有显示内部代码行的细节。

2 个答案:

答案 0 :(得分:0)

创建单独的块并检查每个块的配置文件。

/*! \brief check first for backingContext as it is not set yet up here
if (backingObjectID) {

    [backingContext performBlockAndWait:^{

        backingObject = [backingContext existingObjectWithID:backingObjectID error:nil];
    }];

} else {

    [backingContext performBlockAndWait:^{

    backingObject = [NSEntityDescription insertNewObjectForEntityForName:entity.name inManagedObjectContext:backingContext];
    }];

}];

答案 1 :(得分:0)

您现在可以从 Xcode 6.0.1 开始进入一个区块。