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

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.
 
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