ios – 表观泄漏:png_malloc

ios – 表观泄漏:png_malloc,第1张

概述我有一个应用程序与各种动画和图像.该应用程序运行良好约30分钟,但随后崩溃.我查看了这些仪器,并注意到每次标记堆时都会产生大量的7kB png_malloc分配(每隔几分钟就会达到大约300kB). 我在泄漏中注意到,每次动画或png第一次使用时,数据似乎都会“泄漏”(尽管我有点怀疑这是否是真正的泄漏). 所有这些图像都已声明使用 frameName = [[NSString alloc] ini 我有一个应用程序与各种动画和图像.该应用程序运行良好约30分钟,但随后崩溃.我查看了这些仪器,并注意到每次标记堆时都会产生大量的7kB png_malloc分配(每隔几分钟就会达到大约300kB).

我在泄漏中注意到,每次动画或png第一次使用时,数据似乎都会“泄漏”(尽管我有点怀疑这是否是真正的泄漏).

所有这些图像都已声明使用

framename = [[Nsstring alloc] initWithFormat:@"image.png"];UIImage * u = [UIImage cachelessImagenamed:framename];

所以我不相信缓存图像应该有问题.

有没有其他人对此png_malloc分配有同样的问题?

The instruments screenshot

*注意:我正在使用arc,并且在释放函数中动画被设置为nil;但是,在应用程序退出之前不会调用它们.如果只创建一次动画,每次运行动画时是否会产生问题?

编辑更多代码:

-(voID) createSymbolAnimations{    if (symbolAnimations == nil)    {        symbolAnimations = [[NSMutableArray alloc]init];    }    Nsstring * framename;    if (thisAnimation == nil)    {         thisAnimation = [[NSMutableArray alloc] init];    }    for (int x= 0; x< 40; x++)    {        framename = [[Nsstring alloc] initWithFormat:@"image%d%s",x,".png"];        UIImage * u = [UIImage cachelessImagenamed:framename];        [thisAnimation addobject:u];    }     [symbolAnimations addobject:thisAnimation];}

是动画的创作.想象一下,我有一些这些,然后我改变动画集并开始使用此片段触摸动画:

UIImageVIEw * aVIEw = [frameArray objectAtIndex:x];        aVIEw.image = [[symbolAnimations objectAtIndex:x]objectAtIndex:0];[aVIEw startAnimating];

其中x是我要设置动画的图像集,0是动画的第一帧.

所以图像改变了很多次,我开始担心每次动画图像改变时,RAM都不会被清除,而是被重写/重写.

编辑图像采集卡

+(UIImage *) cachelessImagenamed: (Nsstring *) name{    return [UIImage imageWithContentsOffile:[[NSBundle mainBundle] pathForResource:name ofType:nil]];}
解决方法@H_404_49@ 为了防止以后有人发现这个问题,我发现了问题.

在这个项目中用于动画的png是在windows中创建的(不确定它是多么相关),似乎文件格式与XCode期望的png略有不同.这不允许任何png被释放.如果您将格式转换为Mac的png,它似乎工作正常.我做到了这一点

mogrify -type truecolormatte -format png *.png

调整完所有图像后,泄漏率大大降低,一切似乎运行良好.

总结

以上是内存溢出为你收集整理的ios – 表观泄漏:png_malloc全部内容,希望文章能够帮你解决ios – 表观泄漏:png_malloc所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1052519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存