Memory Cocos2D CCTextureCache保留在内存中

Memory Cocos2D CCTextureCache保留在内存中,memory,cocos2d-iphone,textures,cctexturecache,cocos2d-iphone-2.x,Memory,Cocos2d Iphone,Textures,Cctexturecache,Cocos2d Iphone 2.x,对于滚动条,我使用addImageAsync以异步方式加载图像 我开始分析,看到一些内存问题,图像保留在内存中 然后我决定比较addImageAsync和spriteWithFile,以及加载和直接卸载图像。 完成所有加载后,addImageAsync将使用更多内存 在加载许多图像的循环中,如果我使用 CCSprite* sprite = [CCSprite spriteWithFile:previewPath]; NSLog(@"sprite created"); [[

对于滚动条,我使用addImageAsync以异步方式加载图像

我开始分析,看到一些内存问题,图像保留在内存中

然后我决定比较addImageAsync和spriteWithFile,以及加载和直接卸载图像。 完成所有加载后,addImageAsync将使用更多内存

在加载许多图像的循环中,如果我使用

    CCSprite* sprite = [CCSprite spriteWithFile:previewPath];
    NSLog(@"sprite created");
    [[CCTextureCache sharedTextureCache] removeTexture:sprite.texture];
    NSLog(@"texture removed");
    sprite = NULL;
    NSLog(@"sprite nulled");
我最终得到了72.4MB

如果我使用:

    [[CCTextureCache sharedTextureCache] addImageAsync:previewPath withBlock:^(CCTexture2D *tex) {
        [[CCTextureCache sharedTextureCache] removeTexture:tex];
        NSLog(@"texture removed");
        [CCTextureCache purgeSharedTextureCache];
    }];
我最终得到了108.7MB

这里有问题吗,还是我做错了什么


(使用cocos2dv2)

您是如何测量内存消耗的?你什么时候测量的?您是否检查过仪器中的活动对象以确保相关对象已被释放?我认为图像会被缓存,除非发出内存警告或用户手动清空缓存。