iCulture forum | iPhone, iPad,  iPod touch, Apple TV en iOS

iCulture forum | iPhone, iPad, iPod touch, Apple TV en iOS (https://forum.iculture.nl/)
-   Ontwikkelen voor iOS (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/)
-   -   Instruments > Leaks herkent geen leaks (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/43122-instruments-leaks-herkent-geen-leaks.html)

vdevos 05-09-09 14:14

Instruments > Leaks herkent geen leaks
 
Hallo,

ik ben begonnen met het onwikkelen van een applicatie voor op de iPhone.

Nou ben ik een aantal tutorials aan het volgen en een boek aan het lezen, en ben nu aangekomen bij "memory management" zo worden er een aantal "leaks" gecreërd en deze kun je dan netjes opsporen met de applicatie Instruments die Apple bijlevert in de iPhone SDK.

Bij mij werkt deze echter niet correct... ik krijg het op geen ENKELE manier voor elkaar om deze leaks te laten zien.

Misschien nuttig om even erbij te melden, ik werk op mijn laptop (een Dell Studio waarop ik iPC 10.5.8 draai met een 9.5 Darwin kernel. met de allerlaatste iPhone SDK)

Ik heb al alles geprobeerd om ook maar één leak te forceren. Aan mijn code ligt het zeker weten niet aangezien ik al flink wat voorbeelden heb gezien en geprobeerd. Het ligt alleen aan die Leak-tool heb ik het idee. Als ik namelijk Object bekijk via Xcode > Start with performance tools > Object Locations zie ik het aantal Objecten en geheugen gebruik flink toenemen (en weer stabiel bij het niet gebruiken van de leak-code)

Ik heb het volgende al geprobeerd maar kom maar niet tot een oplossing...


- XCode > new project > Mac OS X > Command Line Utitly
- vervolgens een beetje code om een leak te forceren
- Start with performance tool > Object Locations (hier zie ik wel degelijk het aantal objecten en geheugen gebruik stijgen) maar doe ik vervolgens opnieuw builden en dan starten met Leaks dan zie ik hier 0 leaks



Vervolgens heb ik een nieuw project gemaakt XCode > iPhone > View based application
- toen weer code voor een leak geklopt
- gebuild/gerunned met iPhone Simulator 3.0 EN iPhone Device 3.0 (een fysieke iPhone dus) om vervolgens via Xcode > Start with performance tools te proberen (zowel de simulator and de fysieke iphone) ook dit geeft geen resultaat (wel Object Locations laat weer netjes Memory abuse zien)



ook heb ik geprobeerd niet via Xcode de leaks op te sporen maar via Instruments zelf
- new > iPhone > Leaks
- Attach to process > XCode (tijdens het debuggen) EN Launch Executable en vervolgens het geïnstalleerde programma op mijn iPhone

Ik hoop dat iemand van jullie een oplossing weet of misschien uit eigen ervaring ook al eens dit probleem heeft gehad/gehoord/gezien en mij verder wil helpen. Het is mogelijk om leaks via Object Locations te achterhalen maar Leaks is hier VEEL geschikter voor en zal enorm veel tijd besparen bij het ontwikkelen van mijn Applicatie.

wbroek 07-09-09 15:11

Je zou ook ipv Instruments (leuke tool maar gebruik het nauwlijks) ook Clang Static Analyzer kunnen gebruiken, deze is veel beter in het vinden van Leaks en andere logica fouten.
Instruments doet op mijn Macbook Pro ook vaak raar en daarom gebruik ik het niet vaak, sowieso heeft het alleen maar zin als je het gebruikt met een echte iphone

gekkepietje 07-09-09 16:25

Citaat:

Oorspronkelijk geplaatst door wbroek (Bericht 348330)
...sowieso heeft het alleen maar zin als je het gebruikt met een echte iphone

Dat is waar voor performance testing, maar om op leaks te checken kun je gewoon je Mac gebruiken.

wbroek 09-09-09 09:37

Met de release van Snow Leopard komt Xcode 3.2 en daar zit nu de static analyzer in, deze hoef je nu niet meer apart te instaleren. Je kunt nu "Build & Analyze" doen (via Build dropdown) en je krijgt met blauwe iconen te zien waar potentiele lekken en logica fouten zitten (bron TUAW)

Testen van Leaks op een device is ook beter omdat je code op een telefoon ook anders kan werken, er zijn genoeg voorbeelden waar de simulator niet hetzelfde doet als een device!


Alle tijden zijn GMT +2. Het is nu 01:39.