Hallo,
dies ist mein erster Beitrag hier und man möge mir meine Unkenntniss verzeihen...
Trotz vieler Literatur und vielem Lesen im hiesigen Forum weigert sich mein Hirn beharrlich, daß Objective-C Memory-Management zu verstehen. Also zum Thema. Habe mir eine Anwendung geschrieben, die csv Files einließt und die Werte graphisch aufbereitet. Bin soweit eigentlich fertig. Die Diagramme von tausenden von Werten werden in Echtzeit dargestellt mit Zoomfunktion. Bin ein wenig stolz darauf Nachedm ich soweit fertig war mit testen, habe ich die App auf eine große Zahl von csv Files losgelassen, die nacheinander eingelesen und verarbeitet werden. Dabei fiel mir auf, daß der Speicherverbrauch der App während des Einlesens dramatisch ansteigt und der Mac anfängt zu swappen (>2GB!). Ich habe den Code zum verifizieren soweit abgespeckt, daß der untere Schnipsel übrigbleibt und einer TestApp innerhalb von applicationDidFinishLaunching: mit zig csv Files zyklisch aufgerufen wird. Ist applicationDidFinishLaunching: beendet fällt der benutzte Spiecher wieder auf MB Niveau zurück. ARC ist aktiviert.
Was mache ich falsch?
Alles anzeigen
dies ist mein erster Beitrag hier und man möge mir meine Unkenntniss verzeihen...
Trotz vieler Literatur und vielem Lesen im hiesigen Forum weigert sich mein Hirn beharrlich, daß Objective-C Memory-Management zu verstehen. Also zum Thema. Habe mir eine Anwendung geschrieben, die csv Files einließt und die Werte graphisch aufbereitet. Bin soweit eigentlich fertig. Die Diagramme von tausenden von Werten werden in Echtzeit dargestellt mit Zoomfunktion. Bin ein wenig stolz darauf Nachedm ich soweit fertig war mit testen, habe ich die App auf eine große Zahl von csv Files losgelassen, die nacheinander eingelesen und verarbeitet werden. Dabei fiel mir auf, daß der Speicherverbrauch der App während des Einlesens dramatisch ansteigt und der Mac anfängt zu swappen (>2GB!). Ich habe den Code zum verifizieren soweit abgespeckt, daß der untere Schnipsel übrigbleibt und einer TestApp innerhalb von applicationDidFinishLaunching: mit zig csv Files zyklisch aufgerufen wird. Ist applicationDidFinishLaunching: beendet fällt der benutzte Spiecher wieder auf MB Niveau zurück. ARC ist aktiviert.
Was mache ich falsch?
Quellcode
- +(void)importPerformanceFile:(NSString *)datei {
- int i;
- NSString *dateiInhalt = [NSString stringWithContentsOfFile: datei encoding:NSUTF8StringEncoding error:nil];
- NSArray *dateiZeilen = [dateiInhalt componentsSeparatedByString:@"\r\n"];
- for (i = 0; i < [dateiZeilen count]; i++) {
- NSString *dateiZeile = [[dateiZeilen objectAtIndex: i] stringByReplacingOccurrencesOfString: @"\"" withString: @""];
- NSArray *csvContent = [dateiZeile componentsSeparatedByString: @","];
- }
- }