Je viens de finir de débarrasser mon projet de fuites, mais il y a encore des milliers d'objets dans la catégorie "GeneralBlock-0". Le nombre d'allocations nettes est à travers le toit (il se rapproche d'un million que je tape), mais aucun d'entre eux sont des fuites et aucun d'entre eux ont une taille supérieure à 0 octets.Des milliers de nouveaux objets de taille 0 sont ajoutés à mon total net toutes les secondes, devrais-je m'inquiéter?
MISE À JOUR & EDIT:
QuartzCore est responsable de tous les objets incriminés.
Les appelants responsables sont (dans l'ordre d'exécution par itération de la boucle de jeu:
-[CALayer setPosition:]
x_hash_table_new_ // x2
hash_table_modify
-[CALayer setPosition:] // x9
-[CALayer(CALayerPrivate)_copyRenderLayer:flags:] //x13
Lorsqu'il est exécuté sur un dispositif, 48 octets objets de taille sont attribués sous GeneralBlock-64, 128, 256 etc., avec . ces mêmes propriétés que décrit ci-dessus Cette est inacceptable car elle provoque évidemment un ralentissement significatif C'est ce code dans mon projet, le problème est imputable à:.
topRow.center = CGPointMake(topRow.center.x,topRow.center.y-PIXELS_PER_FRAME);
while (nextRow = thisTopRow.below) { //stops running when thisTopRow.below is nil
nextRow.center = CGPointMake(nextRow.center.x,nextRow.center.y-PIXELS_PER_FRAME);
if (nextRow.center.y+20 < 401 && !nextRow.userInteractionEnabled)
[nextRow enableInteraction];
thisTopRow = nextRow;
}
I w comme sous l'impression que CGPoint était un type, et serait désaffecté à la fin du bloc de code. Pourquoi est-ce que ça monopolise ma mémoire? Si tout se résume à cela, je vais télécharger le fichier de trace que j'ai enregistré dans les instruments pour toute personne intéressée, mais je suis sûr que j'ai tout couvert.
Ce même problème se produit dans iTennis par iCodeBlog.com, un tutoriel que je commençais à utiliser. Toutes les choses pointent vers changer la position d'un UIImageView, soit en changeant le centre ou le cadre. – Tozar