Tag: 内存

Xcode的 – 我的应用程序崩溃,错误是“无效指针从空闲列表中出列***在malloc_error_break设置断点debugging”

我的应用程序在模拟器上运行完美。 但是当我在设备上运行应用程序崩溃并显示错误: “ 对象0x17415d0c0的 malloc: *错误:从空闲列表中出列的无效指针*在malloc_error_break中设置断点以进行debugging”; 我在malloc_error_breaksearch并设置了一个断点来debugging,但仍然找不到问题。 我试图改变项目的scheme,启用僵尸对象,但无法find答案。 我也尝试使用乐器,但我不擅长。

在iOS中清除内存中的敏感数据的正确方法是什么?

我想在我的iOS应用程序中清除内存中的敏感数据。 在Windows中我曾经使用SecureZeroMemory。 现在,在iOS中,我使用普通的旧memset,但我有点担心编译器可能会优化它: https : //buildsecurityin.us-cert.gov/bsi/articles/knowledge/coding/771-BSI.html 代码片段: NSData *someSensitiveData; memset((void *)someSensitiveData.bytes, 0, someSensitiveData.length);

iOS应用程序因内存不足而死亡,但未收到内存警告

一段时间以来,我遇到了一个问题,我想知道是否有人可以帮忙。 我正在开发一个IOS应用程序(iPad),使用主导航控制器和大量的UIImage。 在使用应用程序一段时间后,应用程序因为内存不足而死亡(不是特定的视图),但通过检查iPad日志,我并不总是看到低内存警告(有时候我会,有时候我不会)。 即使我收到一个,它只是“ 收到低内存警告 ”,但我从来没有得到“ 1级 ”或“ 2级 ”。 通过使用xCode的泄漏仪器,我找不到任何泄漏。 谁能帮忙?

因内存压力而终止已知原因,未知解决scheme

我的应用程序正在终止,由于在应用程序的使用某一点的内存压力,我已经将问题隔离到导致问题的一个代码块。 我将复制下面的代码块,但首先我将描述它在做什么。 说明 : 我有一个循环遍历video列表。 对于每个video,for循环都会增加包含scrollview的大小,绘制一个标签和一个button(都与video有关),并asynchronous抓取video的缩略图并将其放置在button下方。 问题 : 抓住缩略图部分是问题。 我不认为这是asynchronous完成的事实是问题,因为我已经同步尝试了,并且终止仍然发生。 当我注释掉抓取缩略图的代码(下面代码中的整个asynchronous部分)时,应用程序不会崩溃。 守则 : 注意:为了简洁,我在某些情况下使用注释来replace代码。 for (int i = [_videoURLs count]-1; i >= 0 ; i–) { //increase the scrollview size //get background image: dispatch_async(screenshotQueue, ^{ AVURLAsset *as = [[AVURLAsset alloc] initWithURL:currentURL options:nil]; AVAssetImageGenerator *ima = [[AVAssetImageGenerator alloc] initWithAsset:as]; ima.appliesPreferredTrackTransform = YES; NSError *err = NULL; […]

MKMapView有多个覆盖内存的问题

似乎有一个覆盖和MapKit的“问题”。 与注释不同的是,叠加层不会被重用,因此添加多个叠加层会导致真实设备上的内存问题。 我有这个问题多次。 所以我的问题是,如何重新使用MKOverlay,从而提高MapKit覆盖层的性能?

我的iPad运行时内存在哪里?

我正在导致设备(iPad)显然用完内存,所以它正在抛弃我的应用程序。 我正在试图了解仪器正在告诉我,我正在使用大约80Mb,并且没有其他应用程序在设备上运行。 我发现这个代码片断要求在iOS下的马赫系统的内存统计信息: #import <mach/mach.h> #import <mach/mach_host.h> static void print_free_memory () { mach_port_t host_port; mach_msg_type_number_t host_size; vm_size_t pagesize; host_port = mach_host_self(); host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t); host_page_size(host_port, &pagesize); vm_statistics_data_t vm_stat; if (host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size) != KERN_SUCCESS) NSLog(@"Failed to fetch vm statistics"); /* Stats in bytes */ natural_t mem_used = (vm_stat.active_count + vm_stat.inactive_count + vm_stat.wire_count) […]

适用于iPhone OS应用程序的可用内存

有一个函数或常量定义在iPhone OS中的应用程序的可用内存量? 我正在寻找一种独立于设备的方式(iPod touch,iPhone,iPad)来了解应用程序剩下多less内存。

高内存使用率通过PHAssets循环并调用requestImageForAsset

我正在使用一个图像select器库允许用户从他们的照片库中select许多图像。 它们以PHAssets数组的PHAssets返回。 然后,我想将所有的PHAssets转换为UIImages ,并将它们写入应用程序的存储。 目前,我正在循环所有资产并同步调用requestImageForAsset 。 我的问题是,当这个循环运行的时候,内存使用率会非常高(有30个镜像,最高可达130MB)。 我想阻止这一点。 这是我的代码: for(PHAsset *asset in self.assets) { NSLog(@"started requesting image %i", i); [[PHImageManager defaultManager] requestImageForAsset:asset targetSize:PHImageManagerMaximumSize contentMode:PHImageContentModeAspectFit options:[self imageRequestOptions] resultHandler:^(UIImage *image, NSDictionary *info) { dispatch_async(dispatch_get_main_queue(), ^{ assetCount++; NSError *error = [info objectForKey:PHImageErrorKey]; if (error) NSLog(@"Image request error: %@",error); else { NSString *imagePath = [appDelegate.docsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%i.png",i]]; NSData *imageData […]

内存泄漏时使用NSURLSession.downloadTaskWithURL

所以我在斯威夫特的努力中遇到了另一个障碍。 我正在尝试将多个图像加载到图像库中 – 除了一件事情之外,所有的工作都很好。 尽pipe我清除了图像,但应用程序的内存使用仍在不断增长和增长。 基本上所有的代码基本上,我发现这是由我的图像加载脚本引起的: func loadImageWithIndex(index: Int) { let imageURL = promotions[index].imageURL let url = NSURL(string: imageURL)! let urlSession = NSURLSession.sharedSession() let query = urlSession.downloadTaskWithURL(url, completionHandler: { location, response, error -> Void in }) query.resume() } 正如你所看到的,这段代码现在基本上什么都没有。 然而每次我打电话时,我的应用程序内存使用量都在增长。 如果我注释掉查询,内存使用情况不会改变。 我已经阅读了几个类似的问题,但都涉及使用一个代表。 那么,在这种情况下,没有代表还有内存问题。 有谁知道如何消除它,是什么造成的? 编辑:这是一个完整的testing类。 似乎内存只在图像可以加载时才会增长,就像指向图像的指针永远保存在内存中一样。 当图像没有find时,没有任何反应,内存使用率保持低。 也许有些提示如何清理这些指针? import UIKit class ViewController: UIViewController { override […]

ios UIWebView中的大量内存泄漏

寻找我们的系统其他地方的内存泄漏,我创build了一个20 MB的网页与元刷新标签。 我们的想法是通过我们的数据path代码移动大量的数据来确认mem的稳定性。 <html> <meta http-equiv="refresh" content="1"> <body> <div style="border: 1px solid red"> Content loading </div><!– 20mb worth of comments –> </body> </html> 我发现uiwebview显示meta刷新页面泄漏内存非常,非常快。 应用程序内存在大约2分钟内达到300mb,即使在我们的代码不在播放的情况下,也会发出低内存警告。 我已经停止了刷新加载,并试图释放web视图。 我试过loadurl:“about:blank”,loadhtml:“”,javascript文档closures。 我也试着写一个recursion的removeFromSuperview和removeFromParentViewController,阅读webview中的私人滚动视图是一个内存问题,但该内存永远不会释放。 我似乎无法find一个可靠的方式来closures,当我们完成了一个webview的dealloc。 我们生活在一个缓慢的webview泄漏的时间很长一段时间,真的想find一种方法来确保当我们完成了一个webview可以完全清理。 我们最近把应用程序转换成了不改变内存速率的ARC。 我正在考虑尝试通过webview中的所有对象的recursion循环,看看他们是否可以被释放。 仪器显示20MB的cfdatas,对于20MB页面的每一次刷新都是活着的,但是并不显示它们是泄漏的。 如果我只提供响应头并完成了urlprotocol客户端,我们运行稳定,所以是ale确认memleaks在其余的数据path,但这是一个戏剧性的testing用例结果希望find一个webview的mem泄漏解决scheme一次并为所有。 有没有人有任何更好的想法,或有任何人试图通过uiwebview中的对象recursion?