Cocos2D / iOS7: aumento continuo del uso de memory para el código repetitivo

Esto es lo que parece con el simulador de iOS7 cuando la aplicación se está ejecutando sin ninguna interacción del usuario (tampoco estoy ejecutando ningún código mío, solo Cocos2D).

introduzca la descripción de la imagen aquí

No existe tal problema con 5.0-> 6.1. El código que produce este problema es el código repetitivo de Cocos2D que traté de minimizar con los comentarios y este es el código mínimo del delegado de la aplicación:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Create the main window window_ = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // CCGLView creation CCGLView *glView = [CCGLView viewWithFrame:[window_ bounds] pixelFormat:kEAGLColorFormatRGB565 depthFormat:0 preserveBackbuffer:NO sharegroup:nil multiSampling:NO numberOfSamples:0]; director_ = (CCDirectorIOS*) [CCDirector shanetworkingDirector]; director_.wantsFullScreenLayout = YES; // Display FSP and SPF [director_ setDisplayStats:YES]; // set FPS at 60 [director_ setAnimationInterval:1.0/60]; // attach the openglView to the director [director_ setView:glView]; [glView setMultipleTouchEnabled:YES]; // 2D projection [director_ setProjection:kCCDirectorProjection2D]; // [director setProjection:kCCDirectorProjection3D]; // Enables High Res mode (Retina Display) on iPhone 4 and maintains low res on all other devices if( ! [director_ enableRetinaDisplay:YES] ) CCLOG(@"Retina Display Not supported"); // Default texture format for PNG/BMP/TIFF/JPEG/GIF images // It can be RGBA8888, RGBA4444, RGB5_A1, RGB565 // You can change this setting at any time. [CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888]; // If the 1st suffix is not found and if fallback is enabled then fallback suffixes are going to searched. If none is found, it will try with the name without suffix. // On iPad HD : "-ipadhd", "-ipad", "-hd" // On iPad : "-ipad", "-hd" // On iPhone HD: "-hd" CCFileUtils *shanetworkingFileUtils = [CCFileUtils shanetworkingFileUtils]; [shanetworkingFileUtils setEnableFallbackSuffixes:NO]; // Default: NO. No fallback suffixes are going to be used [shanetworkingFileUtils setiPhoneRetinaDisplaySuffix:@"-hd"]; // Default on iPhone RetinaDisplay is "-hd" [shanetworkingFileUtils setiPadSuffix:@"-ipad"]; // Default on iPad is "ipad" [shanetworkingFileUtils setiPadRetinaDisplaySuffix:@"-ipadhd"]; // Default on iPad RetinaDisplay is "-ipadhd" // Assume that PVR images have premultiplied alpha [CCTexture2D PVRImagesHavePremultipliedAlpha:YES]; // Create a Navigation Controller with the Director navController_ = [[MyNavigationController alloc] initWithRootViewController:director_]; navController_.navigationBarHidden = YES; // for rotation and other messages [director_ setDelegate:navController_]; // set the Navigation Controller as the root view controller [window_ setRootViewController:navController_]; // make main window visible [window_ makeKeyAndVisible]; return YES; } 

También comenté CCDirector desde el inicio de directorDidReshapeProjection para eliminar mi propio código. Entonces, cuando la aplicación se inicia ahora, solo veo la velocidad de fotogtwigs en la pantalla en negro.

El mismo resultado que veo en Instruments.

Desafortunadamente no puedo probar iOS 7 en el dispositivo, pero no espero que el simulador actúe así.

Actualizar:

Hice 2 Mark Generations con el siguiente resultado.

introduzca la descripción de la imagen aquí

Todos los artículos son esas asignaciones de 64 bytes. No tengo ni idea de qué tipo son. Vale la pena mencionar que estoy usando el último Cocos2D estable 2.1.

Actualización n. ° 2:

Pila de llamadas de asignación de 64 bytes.

introduzca la descripción de la imagen aquí

No tanto una respuesta como una confirmación: parece ser un problema específico para iOS 7.0 y cocos2d 2.1.

Observé el mismo comportamiento: cocos2d 2.1 en el simulador iOS 7.0 aumenta el uso de memory a lo largo del time. Y mucho, también, cada pocos segundos en ~ 1 MB. Pero dejemos de lado eso, el simulador no es un dispositivo real.

En un dispositivo (iPod touch 5th gen con iOS 7), la memory apenas sube. El uso de generaciones marcadas durante un período de 5 minutos indica un crecimiento de 15 KB como máximo. Ocasionalmente, se asigna un bloque de 10-15 KB pero finalmente se suelta, al less la mayor parte. La cantidad de memory agregada y que se adhiere durante un período de 5 minutos es de aproximadamente 5 KB. No mucho, pero también más que nada para una aplicación de plantilla que no hace ni responde a nada.

La memory que se agrega y nunca se libera en el dispositivo se marca principalmente como <non-object> como en el Simulator, con unos pocos CGPath en el medio. Por lo tanto, esto puede indicar que podría haber un problema de administración de memory en Cocos2D 2.1 en iOS 7, aunque es demasiado pequeño como para tener un efecto negativo en la mayoría de las aplicaciones (~ 100 KB "filtrado" por hora).

Las aplicaciones Sprite Kit y OpenGL, así como las que se ejecutan en un simulador de iOS 6 (no pude probar en un dispositivo iOS 6), no muestran ningún problema, los bytes en vivo permanecen estables, con generaciones marcadas que no informan crecimiento alguno.

¿Estás seguro de que no tienes objects zombie habilitados?

Haga clic en su producto -> Editar esquema y en la pestaña de diagnóstico si tiene "Habilitar objects zombis" marcada, desmarque e intente nuevamente.

Sé que es demasiado tarde para responder a este problema, pero déjalo aquí. Hay un chico que habla sobre nszoombie, así que si habilita la debugging de xcode con esta opción, causará este problema. Apáguelo y vuelva a verificar