Tag: 内存

Iphone模拟器 – 分配太多的内存和运行速度相比,设备

我已经看到很多关于模拟器运行缓慢的post,但我的问题是不同的。 我用仪器运行我的应用程序,看到在应用程序运行时,应用程序使用大约8mb的实时内存。 在模拟器中,实时内存大约是50MB,我不知道这是为什么。 这导致模拟器滞后,我需要它运行平稳,所以我可以采取我的应用程序一个很好的屏幕捕捉video。 有任何想法吗?

获取iOS应用程序使用的实际数量的OpenGL纹理内存

SO中有几个类似于这个的问题,但是他们没有一个能够解释在设备上获取iOS应用程序使用的实际OpenGL纹理内存的确定方法。 我知道如何手动计算上传到OpenGL时我的纹理将使用多less内存。 我想知道如果我可以从设备中获得确切的OpenGL使用的内存量。 我想避免看看仪器上的内存监视器小部件中的真实内存和虚拟内存列(我的理解是这些聚合纹理内存和应用程序的正常内存)。 我认为这与这里或这里显示的方法类似。 我不介意是否使用任何外部工具或以编程方式获取纹理内存。 但是我只想要设备报告的真正的OpenGL内存,而不是聚合。 另外,有人可以解释什么'虚拟内存'专栏准确地意味着在iOS? 我想我理解虚拟内存的概念,但是我想弄清楚虚拟内存列是否也与iOS低内存警告相关,或者只与Real Memory列有关。

内存增加SpriteKit即使removeAllChildren调用

我一直在努力修复SpriteKit的内存增加了很多个星期,但是没有find解决办法。 我已经尝试了几乎所有在线pipe理SK内存的方法,但仍然遇到麻烦。 这是我的情况: 我首先介绍了SKScene的“HomeScreen”,然后从那里我用我的视图控制器中的UIButton来改变页面场景,就像这样: func nextPage(sender: UIButton) { pageNumber = pageNumber + 1 let switchPage = SKTransition.crossFadeWithDuration(3.0) switchPage.pausesOutgoingScene = false switch pageNumber { case 1: self.skView.presentScene(Page01(size: (self.view?.bounds.size)!), transition: switchPage) case 2: self.skView.presentScene(Page02(size: (self.view?.bounds.size)!), transition: switchPage) case 3: self.skView.presentScene(Page03(size: (self.view?.bounds.size)!), transition: switchPage) case 4: self.skView.presentScene(Page04(size: (self.view?.bounds.size)!), transition: switchPage) case 5: self.skView.presentScene(Page05(size: (self.view?.bounds.size)!), transition: switchPage) case 6: […]

在iOS内存问题的Sqlite

我花了几个小时试图解决这个问题,但我刚刚放弃了; 我不知道什么是错的。 在我的应用程序中,我执行嵌套的SQL操作来正确设置所有对象。 出于某种原因,有时sqlite3对象不能正确释放,导致内存上升。 我知道这是正确使用sql3_close和sql3_finalize的问题。 但是,正如你所看到的,我想我已经正确地使用了它们。 这是问题的根源: – (NSArray *) getAllSessions { if (sqlite3_open(dbPath, &db) == SQLITE_OK) { if (sqlite3_prepare_v2(db, query_stmt, -1, &statement, NULL) == SQLITE_OK) { while (sqlite3_step(statement) == SQLITE_ROW) { //I found out that doing something like that //toAdd.in_loc = [self getIndoorLocationWithId:[NSNumber numberWithInt:(int)sqlite3_column_int(statement, 6)]]; //messes the memory up all the time //but doing […]

iOS – Objective C – 关于属性的问题

可能重复: 财产申报和自动备份分配 我对Objective-C相当陌生,我想问一个基本的问题。 我想弄清楚下面两个例子有什么区别: @interface MyViewController : UIViewController { UIImageView *myImageView; } @property (nonatomic, retain) UIImageView *myImageView; @end 和: @interface MyViewController : UIViewController { } @property (nonatomic, retain) UIImageView *myImageView; @end 什么是正确的方法? 我知道财产的使用和财产是什么意思。 问题是第一个例子和第二个例子有什么不同? 内存有差别吗? 提前致谢, 安德烈亚斯

为什么使用4 MB的内存警告和320 MB的空闲空间?

我正在运行附加到Xcode 5.1.1的iOS 7.1的iPhone 4上进行testing。 我不明白为什么当仪器显示我的应用程序只使用几兆字节,并有大量的内存空闲(见附件),我得到内存警告,甚至崩溃。 有任何想法吗? 更新: 在仪器中,正如我怀疑的那样,我发现没有泄漏,但“匿名虚拟机”的大小似乎过大,充满了图像数据。 我应用程序中的每个表格单元都显示一个JPEG。 也许我应该预先缩放这些图像,这是大匿名虚拟机大小的原因…更多的调查要做。

如何决定SQLite数据库与内存中的使用情况

我从一个离开公司的同事那里inheritance了一个项目。 在检查他的代码的时候,我被某些东西弄糊涂了。 在从服务器收到大量数据后,他将这些数据保存到客户端的数据库中,然后继续在db上使用这些数据。 数据在应用程序开始时被接收一次。 我无法理解的是,为什么他不只是使用内存中的数据,而是需要将其存储在数据库? 在应用程序内部有许多内存密集型的操作,比如使用Quartz查看大的pdf文件等,但是不是sqlite的大小也算作应用程序的内存使用量? 我的意思是你认为这样做的好处是什么?

iPhone内存警告和崩溃 – 但仪器显示低内存使用

我有一个奇怪的记忆问题,我有问题的解决,并希望得到一些build议,看看别的地方。 我有的程序(iPhone应用程序)有一个function,它基本上下载大量的文件,处理那些是JSON,并将其余的存储到磁盘。 JSON处理是CPU密集型的,每个文件可能需要几秒钟的时间,所以我有一个NSOperationQueue,maxConcurrency限制为1,处理所有繁重的操作,还有一个队列pipe理多个文件下载。 自iOS5发布以来,应用程序在完成下载顺序时没有崩溃,到目前为止,我所尝试的是, 1)将performSelectorOnBackgroundThread JSON处理更改为使用单个NSOperationQueue,以限制处理大对象的后台线程的数量。 2)添加NSAutoReleasePools循环内创build多个,大,瞬态的对象。 3)刷新sharedURLCache,确保文件不在系统caching中。 4)使用NSKeyedArchiver将JSON对象存储到磁盘,并在线程之间传递文件名而不是实际的对象,以再次尝试减less当前正在使用的保留对象的数量和大小。 所有这些起初似乎都有所作为,而当我查看内存分配时,现在我已经将峰值使用率从20MB以下(因此难怪正在崩溃)降低到10MB以下,而应用程序仍然像以前一样崩溃。 我试图跟踪什么是吃的内存导致应用程序崩溃,在这个场合我有真正的问题说服仪器告诉我任何有用的东西。 这是一个典型的痕迹(在运行iOS 4.3.5的iPhone 3GS上) 你可以看到PEAK的使用率已经超过了7MB,不久之后,你可以看到有关低内存的2个标志,然后紧急内存不足,随后应用程序不久之后终止。 如果我使用内存监视器,崩溃的原因似乎足够清晰 – 物理内存正在耗尽 – 请看下面的浅绿色迹线。 低内存警告与物理内存耗尽(并不令人惊讶)。 没有泄漏显示FWIW(我在其他运行中已经完成了)。 这不是图像caching或NSURLConnectioncaching,唯一我能想到的是,也许有一些不良的泄漏没有被检测到…但我有问题识别他们,因为如果我点击进入所有分配看到对象是活的,然后执行命令-A将它们全部选中(为了将它们粘贴到电子表格中以查看内存似乎在哪里),在我点击命令C来复制它们,Instruments海滩球和从未恢复。 我真的不知道发生了什么事。 有没有人对如何说服乐器向我展示一些关于使用这种内存的更有用的信息有一些build议? 对不起,我不能发布任何有意义的代码片段…希望仪器截图至less让你知道我来自哪里。

内存pipe理CTRunDelegateRef iPhone

我专注于一个项目,添加基于OmniGroup的rtf编辑器的图像支持。我遇到了这个问题,当我使用CTFramesetterCreateWithAttributedString ,它接收 EXC_BAD_ACCESS 这是由一个僵尸对象造成的。 为了简单起见,我从只有照片的rtfd文件中获取NSAttributedString 。 我添加了方法来parsing基于Omni的示例iOS上的图像标记。 而且,创buildNSAttributedString的部分紧接着来自raywenderlich的这个教程 ,如下所示: CTRunDelegateCallbacks callbacks; callbacks.version = kCTRunDelegateCurrentVersion; callbacks.getAscent = ascentCallback; callbacks.getDescent = descentCallback; callbacks.getWidth = widthCallback; callbacks.dealloc = deallocCallback; CTRunDelegateRef delegate = CTRunDelegateCreate(&callbacks, imgAttr); NSDictionary *imgAttr = [NSDictionary dictionaryWithObjectsAndKeys:imgWidth,kImageWidth,imgHeight,kImageHeight, nil];//recored the width and height NSDictionary *attrDictionaryDelegate = [NSDictionary dictionaryWithObjectsAndKeys:(id)delegate, (NSString*)kCTRunDelegateAttributeName,nil]; [_attributedString appendString:@" " attributes:attrDictionaryDelegate]; CFRelease(delegate); 这里appendString:attributes:由Omni提供,是NSMutableAttributedString一个类别: – (void)appendString:(NSString […]

低内存警告总是导致iPad(第一代)崩溃

我的第一代iPad(iOS 5.0.1)的testing者之一正在抱怨不断崩溃。 从描述给我们的方式来看,我们确信当设备收到低内存警告时会发生崩溃。 为了certificate这一点,我们给testing者提供了一个内存版本,它没有足够的内存来提供低内存警告,并且工作正常。 但这不是一个解决办法。 作为testing者,我们有20台第一代iPad,他们都没有这个问题。 是否有可能在设备上设置可能导致内存不足警告时崩溃的内容? iOS 5.0.1安装不正确? 有没有人知道为什么这个设备特别是崩溃的低内存警告,没有其他? 任何帮助将不胜感激, – 丰富