Если вы выделяете значительный * объем автоматически высвобождаемой памяти на каждой итерации цикла, то создание и освобождение нового пула для каждой итерации - это то, что нужно для предотвращения накопления памяти.
Если вы не генерируете много памяти с автоматическим выпуском, это не будет выгодно, и вам понадобится только внешний пул.
Если вы выделите достаточно памяти, чтобы одна итерация была незначительной, но к тому времени вы уже многое сделали, то вы можете создавать и освобождать пул каждые X итераций.
#define IterationsPerPool 10
NSAutoreleasePool* pool = [NSAutoreleasePool new];
int x = 0;
while(1) {
//Process Stuff
if(++x == IterationsPerPool) {
x = 0;
[pool release];
pool = [NSAutoreleasePool new];
}
}
[pool release];
* Вам нужно определить, что значимо для себя.