S'il vous plaît se référer au code ci-dessous:Surcharge du compilateur: combien de temps une condition IF impose-t-elle dans un objectifC?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
}
//... some other code
if (imageLoadingQueue == nil) {
imageLoadingQueue = [[NSOperationQueue alloc] init];
[imageLoadingQueue setName:@"Image Loading Queue"];
}
//... some other code
return cell;
}
Maintenant que nous savons que la méthode - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
est appelée à chaque fois que nous défiler, mais se réfère aux conditions: if (cell == nil)
& if (imageLoadingQueue == nil)
. Cette condition est à nouveau vérifiée & toujours.
Alors je voulais savoir combien coûtent les frais généraux en cas de coût?
EDIT: Comment pouvons-nous mesurer cela? Un outil?
Pas grand-chose, mais pourquoi est-ce important? Votre programme serait incorrect - ou du moins pire - sans lui. –
Attention à l'optimisation prématurée. Il n'y a aucune raison d'optimiser s'il n'y a pas de problème de performance. –
Ne vous inquiétez pas si les déclarations trop. Ils compilent à seulement deux instructions machine, voire pas du tout. Dans votre cas, une valeur d'une adresse sera chargée plus une branche si ce n'est pas zéro. C'est pratiquement noté. De plus, l'exécution pour chaque cellule visible (!) N'est pas du tout. 9 ou 11 fois depuis le début puis le défilement. –