Problem mit der App-Speicher... wo könnte das Problem liegen?

S

silentx

Aktives Mitglied
Thread Starter
Dabei seit
30.08.2011
Beiträge
375
Reaktionspunkte
16
Meine App wird je länger ich damit Arbeite immer langsamer. Dazu muss ich sagen, dass ich eine sqlite-Datenbank verwende für die Daten

Habe zwar keine Gute möglichkeit gefunden um das ganze Problem weiter einzugrenzen, aber es wird Hauptsächlich durch diese Methode ausgelöst (bzw. beim IOS-Debugger stürzt es immer in Verbindung mit dieser Methode ab.
Code:
-(NSMutableArray *) query:(NSString *)pstrQuery {
    NSMutableArray *lamuData = [[NSMutableArray alloc] init];
    int lintResult;
    lintResult = sqlite3_open([[self kstrDatabase] UTF8String], &ssql); // SQL-Verbindung Aufbauen
    if(lintResult == SQLITE_OK) {
        const char *lstrQuery = [pstrQuery UTF8String];
        sqlite3_stmt *lstmtQuery;        
        lintResult = sqlite3_prepare_v2(ssql, lstrQuery, -1, &lstmtQuery, NULL); // SQL-Befehl Ausführen
        if(lintResult == SQLITE_OK) {
            lamuData = [self A1_4_AAB_resultHandler:lstmtQuery];
        } else {            
            [lamuData addObject:@"error"];
            [lamuData addObject:@"err_wrsqllite"];
            [lamuData addObject:@"err_wrsqllite_prepare_v2"];
            if([WRGLOBAL alloc].testInstall == 1) {
                [WRMessageBox showErrorByArray:lamuData];
            }
        }
    } else {
        [lamuData addObject:@"error"];
        [lamuData addObject:@"err_wrsqllite"];
        [lamuData addObject:@"err_wrsqllite_open"];
        if([WRGLOBAL alloc].testInstall == 1) {
            [WRMessageBox showErrorByArray:lamuData];
        }

    }
    sqlite3_close(ssql);
    ssql = nil;
    return lamuData;
}

Sieht jemand hier, ob dieser ein Speicherproblem auslösen könnte?
 
Hallo,

Du hast ein 'sqlite3_finalize' vergessen. So 'frisst' er sich bei jedem Durchlauf voll Speicher und irgendwann wird der halt knapp.
 
  • Gefällt mir
Reaktionen: silentx
Herzlichen Dank für den Hinweis, diesen hatte ich schon mal beim Import-Problem von grossen Dateien.
Gibt es eine Möglichkeit nachzusehen, welche Objekte den Speicher wie verbrauchen?
Denn irgendwie funktioniert es auch nicht, wenn ich am schluss noch einen sqlite3_free(...) verwende
 
Es scheint jetzt doch zu funktionieren. Habe die ganze App-Daten nochmals gelöscht und es nochmals kompiliert und mit dem Simulator getestet. Es gibt keinen Geschwindigkeitsverlust (zuminest im Moment nicht :) )
 
Zurück
Oben Unten