Я пытаюсь импортировать 30mb CSV файл в Core Data, используя CHCSVParser из https://github.com/davedelong/CHCSVParserКак ограничить использование памяти CHCSVParser?
Он работает, это было довольно легко установить, но она съедает много памяти, как это разбора через файл. Чрезмерное использование памяти, кажется, идет от конца -nextCharacter
, в частности, призыв к -substringWithRange:
//return nil to indicate EOF or error
if ([currentChunk length] == 0) { return nil; }
NSRange charRange = [currentChunk rangeOfComposedCharacterSequenceAtIndex:chunkIndex];
NSString * nextChar = [currentChunk substringWithRange:charRange];
chunkIndex = charRange.location + charRange.length;
return nextChar;
я был в состоянии добавить autorelease пул к функции, которая вызывает -drain
каждые 1000000 символов, но тогда пропускная способность идет вниз.
Есть ли у кого-нибудь другие идеи? Возможно, Дэйв ДеЛонг? :-)
Пожалуйста, добавьте еще немного кода окружающего цикла и вашего авторизованного пула. – 2010-12-04 08:20:07
Интересно! Я присмотрюсь и вернусь к вам. – 2010-12-06 00:04:18