Tag: 记忆

watchOS 2上的最大内存使用情况?

我没有发现任何有关在watchOS 2中的应用程序的内存使用情况。我目前正在为watchOS开发一个应用程序,而我正在手表中使用Core Data。 当我将189个对象中的166个加载到数组中时,应用程序崩溃,那个时候的内存使用量是34mb。 由于手表有512mb的内存,我不完全确定只有一个应用程序可以使用多less。 我会改进我的代码的性能和内存使用率,但是我仍然不知道我可以使用多less内存,因为据我所知在Apple Developer门户上不可用。 如果您知道的话,希望知道关于此事的信息。 谢谢!

Swift:内存不清除,当我继续到另一个视图控制器,接收内存警告

我正在Xcode 6.2中build立一个应用程序,用于iOS 8.1。 我有一个UIViewController ( LevelViewController ),其中包含一个UICollectionView其单元格代表我的游戏中的一个级别(每个人都有一个数字标签)。 一旦选中了其中一​​个单元格,我将执行一个显示segue到一个SKScene ,它将加载该特定级别的所有数据。我还有一个“菜单”button,它执行一个show segue回到主菜单。 在function上,这一切工作,但是我执行两个赛段后有严重的记忆问题。 在仪器中窥视之后,看来当我从LevelViewController ,为每个单独的UICollectionViewCell添加的所有UILabel都保留在内存中,以及单元中包含的所有其他内容。 应该只有192个标签(对于192个级别),但是在执行了几次这个分段之后,他们在仪器中加起来大约为1000个。 显然这些内存没有被释放,我的理解是swift应该处理这个问题,所以我不确定问题是什么。 我还应该注意到UICollectionView是以编程方式添加的,并且没有使用IBOutlets 。 那么我怎么能摆脱这些标签,实际上,当我离开UICollectionView时候, UICollectionView本身就是LevelViewController 。 我对此非常困惑,并且毁了我的圣帕特里克日。 所以对于所有事情的爱情爱尔兰请帮助一个小伙子:) 注:我试过的方法 self.collectionView.removeFromSuperView() self.collectionView = nil self.collectionView.deleteItemsAtIndexPaths(path)

如何提高包含大量小图片的UCollectionView的性能?

在我的iOS应用程序中,我有UICollectionView ,显示大约1200个小(35×35点)的图像。 图像存储在应用程序包中。 我正确地重用UICollectionViewCell s,但仍然有性能问题,取决于我如何解决图像加载: 我的应用程序是应用程序扩展,那些内存有限(在这种情况下是40 MB)。 将所有1200张图片放到Assets目录中并使用UIImage(named: "imageName")加载它们导致内存崩溃 – 系统caching的图像填满了内存。 在某些时候,应用程序需要分配更大的内存部分,但由于caching的图像,这些部分不可用。 而不是触发内存警告和清理caching,操作系统只是杀了应用程序。 我改变了避免图像caching的方法。 我将图像放到我的项目中(不是用于保存目录),而是使用NSBundle.mainBundle().pathForResource("imageName", ofType: "png")来加载它们。 该应用程序不再由于内存错误崩溃,但加载单个图像需要更长的时间,即使在最新的iPhone上,快速滚动也是滞后的。 我完全控制图像,并可以将它们转换为.jpeg或优化它们(我已经尝试ImageOptim和其他一些选项,但没有成功)。 我该如何解决这两个性能问题? 编辑1: 我也尝试加载后台线程中的图像。 这是来自我的UICollectionViewCell子类的UICollectionViewCell : private func loadImageNamed(name: String) { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { [weak self] () in let image = bundle.pathForResource(name, ofType: "png")?.CGImage if name == self?.displayedImageName { dispatch_async(dispatch_get_main_queue(), { if name == self?.displayedImageName { self?.contentView.layer.contents […]

iOS内存警告

我试图用一个Parse数据库下载的图像来填充一个集合视图,但是我收到内存警告,偶尔会发生崩溃。 有谁知道其他应用程序如何设法呈现这么多的图像,而不会崩溃? 有人可以告诉我如何优化我已经有的? 以下是所有相关的代码: https : //gist.github.com/sungjp/99ae82dca625f0d73730 var imageCache : NSCache = NSCache() override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. self.imageCache.removeAllObjects() } func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { //In storyboard, my collection view cell has the identifier "PostCell" let cell = collectionView.dequeueReusableCellWithReuseIdentifier("PostCell", forIndexPath: indexPath) as! […]

使用仪器进行iOS开发的含糊之处

我正在用仪器分析一个应用程序。 分析是通过两种方式使用分配工具完成的: 当我运行应用程序进行性能分析时,通过直接select分配 通过select泄漏当我运行应用程序进行分析。 在这两种情况下,我都启用了分配工具进行testing。 但令人惊讶的是,在这些情况下,我有两种不同的分配方式。 他们应该有不同的performance吗? 或者这是仪器的问题。 我用泄漏工具剖析时间: 在分配图中: 1.我在Graph中获得了很多峰,实时字节和总体字节相同。 2.使用1分钟后,我得到黑旗(我认为它报警记忆警告)。 然后出现一组标志,我的应用程序崩溃。 (即使直接在设备中运行App,也会发生这种情况) 我用分配工具分析时间: 在分配图中: 我经常没有像上面这种情况那样高峰。 实时字节始终小于总体字节。 我已经用了20多分钟,从来没有黑旗。 我知道的一个事实是,当Live字节和总体字节相等时,NSZombieEnabled可以被启用。 你有没有遇到过这个问题。 更新1: 我遇到了第一个案件的另一个问题。 每当我简短的时间后分析(与第二种情况下的分析相比),该应用程序有很多的黑旗和我的应用程序崩溃。 (由于内存警告) 而当我尝试类似的一步一步使用应用程序我的应用程序没有崩溃,并没有标志。 为什么这种差异?

在iPad / iPhone应用程序中使用众所周知的免费内存代码是否合法?

内存是一个iphone ipad应用程序的问题,特别是对于ipad,如果你想做一些大事。 那么,这两个代码片段可以获得设备的当前可用内存; 2.强制释放内存。 我们可以在应用程序中使用它吗? Appstore会允许这个吗? #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 + […]