私はリリースに向けて最初の iPhone アプリを微調整する最終段階にあり、できる限りキロバイトを削減しようとしています。アプリの起動時に一部のデータをサーバーと同期するプロセスがあり、コメントアウトしたときに、起動時にアプリが 7MB を使用していることに気付きました。電源を入れると、起動が完了すると18MBを使用しています。私は現在、プロセスのどの部分がメモリを消費していて、それを返していないかを判断しようとしています. 同期機能のほとんどをオフにしましたが、これが残っていますが、まだ2MBのメモリを使用しており、完了しても解放されません:
GDataXMLDocument *syncData = [[self getXmlWithUrl:@"http://SOMEURL"] autorelease];
これは、ヘルパー関数を使用して、使用する xml ドキュメントをロードするだけです。私のヘルパー関数は次のとおりです。
-(GDataXMLDocument*)getXmlWithUrl:(NSString*)url{
NSURLRequest *theRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
NSURLResponse *resp = nil;
NSError *err = nil;
NSData *response = [NSURLConnection sendSynchronousRequest: theRequest returningResponse: &resp error: &err];
return [[GDataXMLDocument alloc]initWithData:response options:0 error:&err];
}
syncData が作成された後にリリースを配置しましたが、もちろん、既に割り当てが解除されていると表示されます。これを引き起こしている可能性のあるアイデアはありますか?