iOS被遗弃的内存VM:Image IO

时间:2014-04-28 11:49:27

标签: ios objective-c ipad memory-management abandoned-memory

我有这样的问题。我正在开发一个iPad应用程序,它实际上使用了大量的图像和核心动画。我没有泄漏,但我已经放弃了内存问题。我的内存增长稳定。我已禁用实际使用相当多内存的动画,但我仍然遇到内存增长问题。对于动画,我使用http://markpospesel.wordpress.com/2012/05/07/mpfoldtransition/。我已经在UIImage类中替换了这种加载方法的实现,因为" imageNamed:"等等仍然无济于事。

如果有人有任何想法,请帮助。

感谢大家。

Instruments screenshot

+ (UIImage *)imageNamed:(NSString *)name {
    NSString *pathExtension = [name pathExtension];
    name = [name stringByDeletingPathExtension];
    if ([pathExtension isEqualToString:@""]) {
        pathExtension = @"png";
    }

    NSString *sufix = [BMKAppUtilites isRetina] ?  @"@2x" : @"";
    name = [name stringByAppendingString:sufix];
    name = [name stringByAppendingPathExtension:pathExtension];

    name = [[NSBundle mainBundle] pathForResource:[name stringByDeletingPathExtension] ofType:[name pathExtension]];
    return [[self alloc] initWithData:[NSData dataWithContentsOfFile:name options:NSDataReadingUncached error:NULL] scale:[BMKAppUtilites scaleFactor]];
}

1 个答案:

答案 0 :(得分:1)

edit:我刚刚注意到这个问题已经超过6年了。 ?

看起来很像某些东西仍然对您的图像有很强的参考作用。我想说的是,根据您显示给我们的数据,最好的选择是仅从Xcode运行并在内存图中暂停,以查看具有强引用的内容。不要忘记在方案中打开malloc堆栈跟踪,以获取对内存分配位置的跟踪。祝你好运。

如果您从未使用过Xcode内存图,这可能会有所帮助:https://developer.apple.com/documentation/xcode/improving_your_app_s_performance/reducing_your_app_s_memory_use/gathering_information_about_memory_use