mercredi 26 octobre 2011

Chercher les fuites mémoires avec XCode sur MACOSX

Si vous développez sous MACOSX avec l'outil de développement Apple(tm) : XCode (version 3 ou 4), vous disposez d'outils puissants de "monitoring" pour vos applications fonctionnant sous iOS ou MacOSX.
Vous pouvez ainsi mesurer : les threads, les core des processeurs, les temps d'exécution de vos méthodes, etc., et les fuites mémoires.

Pour ce il vous faut développer en Objective-C (ou en C++) avec XCode, en voici un exemple :

A gauche et au centre l'IDE XCode 4, à droite le "profileur"

Ci-dessus un tout petit programme écrit avec l'IDE XCode(tm) et écrit avec quelques lignes de langage Objective-C.

A noter : @autoreleasepool { ... } permet de spécifier le code pris en compte par la gestion de la bassine autorelease d'Objective-C.

Deux objets sont ainsi alloués (Alloc 1 et Alloc 2) :

- Le premier est pris en compte par la bassine "autorelease" du langage : [p autorelease];
- Le second (Alloc 2) est volontairement exclu de la bassine d'autorelease, on constate donc une fuite mémoire (image de droite -> Leaks, la barre rouge).

L'outil "profile" de XCode permet de faire des photos (snapshot) à intervalles réguliers et constate les fuites mémoires.

Bien pratique pour développer des applications avec MAC.

A savoir qu'un "garbage collector" est aussi disponible si vous développez avec Objective-C et XCode.


Aucun commentaire:

Enregistrer un commentaire