点赞评论,希望能在你的帮助下越来越好
作者:@iOS成长指北,本文首发于公众号 iOS成长指北,欢迎各位前往指正
如有转载需求请联系我,记住一定要联系哦!!!
这是我参与更文挑战的第4天,活动详情查看:更文挑战
在前文 关于 iOS 内存分配的胡思乱想 一文中,笔者存在错误表述,在此对文章进行勘误。
研究 iOS 内存分配的流程并不无聊,可以从中理解 Apple 是如何设计类的,能够提升自己的工程能力。
错误
笔者在《让我们来调试 iOS 内存 – Memory Graph》一文中,讲解了如何利用程序运行过程中产生的.memgraph
文件分析内存。
再次,我们继续利用文章中的示例,进行对应的分析
我不知道之前出了什么问题,会有下述论断
笔者在《让我们来调试 iOS 内存 – Memory Graph》一文中通过分析应用程序的.memgraph
文件证明了内存中存在三种内存类型:tiny
、small
、large
,所以如果存在nano
类型,为什么这个类型在.memgraph
文件中得不到体现呢?
为什么在.memgraph
文件并没有nano
部分
- 在内存中存在
MALLOC_LARGE
、MALLOC_SMALL
、MALLOC_TINY
和MALLOC_NANO
,即 iOS 的内存视图 ——.memgraph
文件中说明了 iOS 内存的 4 种内存类型。 - 查看表格下方的
MALLOC_ZONE
部分,我们看到了DefaultMallocZone
以及MallocHelperZone
,在前文分析中,我们知道当初次调用了_malloc_zone_calloc
函数时,初次会生成DEFAULT_MALLOC_ZONE
和MALLOC_HELPER_ZONE
.memgraph
文件是一个存在 UIKit 动画和内嵌网页的应用运行一定的时间后生成的,所以总结信息中的QuartzCore
和Webkit_Malloc
是 APP 关于绘制部分和网页内存分配的。
当我们越深入内存,就越接近其内核。这里推荐阅读腾讯技术的 一文掌握 Linux 内存管理 ,希望可以对你有所帮助。
如果你有任何问题,请直接评论,如果文章有任何不对的地方,请随意表达。如果你愿意,可以通过分享这篇文章来让更多的人发现它。
感谢你阅读本文! ?
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END