macos - 应用程序启动时 CFData(存储)分配的来源

标签 macos cocoa instruments cfdata

在应用程序启动时,我的 Cocoa 应用程序立即创建两个 CFData 对象。一个大小为 34 MB,另一个大小为 57 MB。我似乎无法弄清楚这些对象是什么或者它们来自 Instruments 中的何处。

Instruments

两者均在 applicationWillFinishLaunching 完成之前分配。

我已尝试清除 NSURLCache 以及清除我的 Kingfisher 图像缓存,并且愿意接受其他清理此数据的想法。 如何找到这些分配的来源?

最佳答案

该问题是由 NSUserDefaults 引起的。在开发的早期,我在那里保存了一些大文件,这些文件从未被删除。

这是仪器调用树揭示的内容。

Stack Trace

从那里我尝试使用

NSUserDefaults.resetStandardUserDefaults()

但这没有任何作用。清理我的项目或手动删除派生数据文件夹也没有。

按照这个答案,我的 CFData 分配为零: Clearing NSUserDefaults

关于macos - 应用程序启动时 CFData(存储)分配的来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38165034/

相关文章:

objective-c - 如何实现方法调配?

objective-c - html 解析 - Objective C cocoa

macos - NSTableView : Context menu for editing column configuration

swift - 注册 AWSS3 配置造成 5000 多次内存泄漏

python - 在不重新绘制整个图形的情况下更新图形上的艺术家 (Line2D) - axes.draw_artist() 崩溃

macos - NSScrollView 不响应手势

iphone - 减少 iPhone 应用程序启动时间

ios - 仪器 GPUImageFilter Objective C 显示 malloc 中的内存泄漏

c++ - 如何在 Mac 上设置 C++ 应用程序名称和图标?

c - 如何检查 Linux/FreeBSD 上 write() 调用被阻止的问题?