2014-12-04 33 views
0

我正在iOS应用上工作(帮忙)。在大多数设备上,应用程序的稳定存储使用量在60-80MB之内。同样的应用程序(和同一修订版)在iPhone 6+开始使用千兆字节数据在几分钟内...到了填满存储的地步,我甚至无法从XCode运行应用程序了。我只能在iPhone 6上使用它,但在6以上的情况下,这种情况经常发生。我也尝试过从第五代iPod touch到iPhone 5的其他设备,没有其他设备超过80MB。iPhone 6+中的存储空间使用率高得可笑

使用大量存储的代码的唯一部分是图像缓存,它缓存从键入图像ID的服务器下载的(静态)图像。然后再次这个代码是(或似乎是)在其他设备上正常工作。它也是代码库的一部分,在一段时间内没有改变。

任何人都可以想到为什么这个问题只出现在iPhone6 +(和太多程度较低的iPhone6)?

+0

你能发布一些图片缓存代码吗? – Jack 2014-12-04 19:57:29

+0

使用。仪器!这就是它的目的。 – matt 2014-12-04 19:57:50

+0

@matt仪器似乎崩溃。 – copolii 2014-12-04 20:01:53

回答

1

问题是启用了malloc堆栈日志记录并未设置为压缩。它记录了应用程序所做的每一次分配,这是日志文件变得如此之大。至于为什么它只出现在iPhone6和iPhone6 +上,我仍然没有答案。

有问题的文件是stack-logs.773.1006c8000.REDACTED.wmQj2k.index。登录后,它几乎增长到700MB。

非常感谢@ jrturton,因为他的回答确实导致了这一点。

+0

哦,干得好!不过,你应该接受你自己的答案,因为它有真正的原因。 – jrturton 2014-12-09 07:44:08

+1

@jrturton我会接受它......但只是因为你坚持:)非常感谢你的帮助。感谢所有的建议。 – copolii 2014-12-10 01:52:54

1

这是不是一个解决方案,因为它是不可能知道发生了什么,但你应该看看下面的:

  • 这是重复性的模拟器? (文件系统更容易查看)
  • 当应用程序被删除时,存储是否被释放?
  • 你能看到xcode中的设备管理器中的数据(他们一直在移动它,但某处你可以插入设备,看到应用程序,然后看到该应用程序的文件沙箱)
  • 它是什么数据?这应该给你一个关于它的起源的线索
  • 在应用程序中是否存在一组启动问题的操作?

如果这样做,你应该得到有关违规代码的线索。然后,更新你的问题,除非解决方案明显!

+0

尚未尝试模拟器。一旦应用程序被删除,存储空间将被释放。我将检查设备组织者的数据。我怀疑它是图像缓存,但正如我上面所说的那样,代码已经在多年的迭代中没有这个问题。似乎没有一个具体的行动,使它存储饥饿。当用户没有登录时,该应用程序没有太多工作。一旦用户登录并浏览应用程序,存储堆积如山。 – copolii 2014-12-06 01:09:15

+0

检查其中一个文件 - > http://stackoverflow.com/a/27370445/675750 – copolii 2014-12-09 02:25:12