[iPhone/Instruments] Instruments herkent geen Leaks

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Beste Tweakers,

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.

Acties:
  • 0 Henk 'm!

  • ixi
  • Registratie: December 2001
  • Laatst online: 27-08 23:59

ixi

Ik heb wel eens hetzelfde probleem gehad. Een echte oplossing heb ik nooit gevonden; na een restart van XCode deed hij het vaak weer. Testen voor leaks in de simulator geeft trouwens geen volledig beeld; een iphone werkt toch iets anders dan de simulator. Zo heeft de OpenGL implementatie in de simulator standaard een aantal leaks (last time i checked).

Hangt je applicatie wel als Instruments aan het zoeken is naar leaks?

Tevens kan Instruments (volgens mij!) niet alle soorten leaks ontdekken, en soms ook ten onrechte iets aanmerken als leak, hoewel ik niet denk dat dat hier het probleem zal zijn..

[ Voor 17% gewijzigd door ixi op 04-09-2009 18:07 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb XCode en mij computer meer dan eens gerestart maar mocht geen van beide baten. Ook via die simulator krijg ik 0 leaks, ik heb dus nog nooit een leak gezien via Instruments. Ook hangt mijn applicatie niet vast als hij op zoek is naar leaks zowel virtueel als fysiek niet.

Een voorbeeld van een leak die ik geprobeerd heb
C:
1
2
3
4
5
(for i = 0; i < 100; i++) {
   NSObject *obj = [[NSObject alloc]init];
   obj = [obj retain];
   sleep(1);
}

Ik blijf dus gewoon objecten maken welke ik zelf zou moeten releasen of deallocen, maar wat ik dus niet doe.

Het lijkt mij dus sterk dat hij dit niet als een leak zou herkennen...

[ Voor 39% gewijzigd door Verwijderd op 04-09-2009 18:14 ]


Acties:
  • 0 Henk 'm!

  • ixi
  • Registratie: December 2001
  • Laatst online: 27-08 23:59

ixi

Dan probeert hij het dus niet eens. Ik ben bang dat ik je niet kan helpen verder :( Een reinstall van XCode doet wellicht wonderen... Misschien dat het ook te maken heeft met iPC, maar daar heb ik zelf geen ervaring mee.

Acties:
  • 0 Henk 'm!

  • Gorion3
  • Registratie: Februari 2005
  • Laatst online: 24-08 08:28

Gorion3

ABC++

Mwa, ik heb dit vaak mee gemaakt met instruments van xcode. Ik denk dat de applicatie gewoon niet goed werkt.. gewoon op jezelf vertrouwen dat je geen leaks creert. Oftwel alles opruimen als je ergens mee klaar bent!!

Awesomenauts! Swords & Soldiers


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik zou maar wat graag op mijn eigen perfecte code vertrouwen maar denk dat ik zeker nu (kom van C#, Java af) in het begin maar wat graag wil ontwikkelen met ondersteuning van die Instrument Leaks omdat ik nog niet gewent ben zelf het "memory management" te doen.

Weet er iemand misschien nog een betrouwbaar alternatief, welke ook leaks kan opsporen?
Pagina: 1