iOS App 通常情况下的三种内存类型
Clean Memory
Dirty Memory
Compressed Memory
iOS开发交流技术群: 563513413 ,不管你是大牛还是小白都欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!
Clean Memory
Clean Memory 是指那些可以用以 Page Out(当内存不足的时候,系统会按照一定策略来腾出更多空间供使用,比较常见的做法是将一部分低优先级的数据挪到磁盘上) 的内存。
Code
frameworks (每个 frameworks 都有 _DATA_CONST 段,当 App 在运行时使用到了某个 framework,它所对应的 _DATA_CONST 的内存就会由 Clean 变为 Dirty)。
memory-mapped files (被加载到内存中的文件)
Dirty Memory
Dirty Memory 是指那些被 App 写入过数据的内存。
Heap allocations (所有堆区的对象)
图像解码缓冲区
database caches ( 我们对数据进行缓存的目的是想减少 CPU 的压力,但是过多的缓存又会占用过大的内存。由于内存压缩机制的存在,我们需要根据缓存数据大小以及重算这些数据的成本,在 CPU 和内存之间进行权衡。
在一些需要缓存数据的场景下,可以考虑使用 NSCache 代替 NSDictionary,因为 NSCache 可以自动清理内存,在内存吃紧的时候会更加合理。
)
注意:Clean memory,也包括 App 所用到的 frameworks。每个 framework 都会有 _DATA 段和 _DATA_DIRTY 段,它们的内存是 Dirty 的。
Compressed Memory
当内存吃紧的时候,系统会将不使用的内存进行压缩,直到下一次访问的时候进行解压。
例如,当我们使用 Dictionary 去缓存数据的时候,假设现在已经使用了 3 页内存,当不访问的时候可能会被压缩为 1 页,再次使用到时候又会解压成 3 页。
为什么要减少内存
让自己的App可以有更好的用户体验:更快的启动速度,不会因为内存过大而导致 Crash,可以让 App 存活更久等。
工具监控内存
Xcode Debug Area
Instruments
DebugMemoryGraph
线上检查工具
Allocations
FBAllocationTracker
Leaked memory
MLeaksFinder
FBRetainCycleDetector
优化技巧方向
视图层级很多的情况做一些处理
对一些大的数据或者资源的处理
对很多对象的处理
避免内存抖动太大,比如可以用@autoreleasepool 处理for循环大量临时对象造成的问题。
内存泄露的处理
收到内存警告时候做一些处理,比如用 NSCache 代替 NSDictionary,使用 NSPurgableData 代替NSData。让系统在内存不足情况下自己清理内存。
对的处理,比如格式的选择,或者缩放等。
系统把对象 都用一个唯一的数字串表示 比如说136121110(OID)就得到了设备的描述 这样我们就可以根据OID来获得我们想要的 参数 内存利用率啊 cpu利用率啊 板卡温度啊等等 所有的这写 OID以及相关团体的信息就组成了 MIB 每种设备的 MIB。
iphone11处理器在哪看 iphone11的处理器可以在手机设置中查看,进入设置后点击关于手机,即可查看处理器。iphone11配备的是A13处理器。该处理器能以最高达过去六倍的速度执行矩阵数学运算,让中央处理器每秒可进行一万亿次运算。iPhone是苹果公司旗下研发的智能手机系列,它搭载苹果公司研发的iOS手机作业系统。第一代iPhone于2007年1月9日由当时苹果公司CEO的史蒂夫·乔布斯发布,并在2007年6月29日正式发售。
右击计算机-管理-左边有个系统工具,双击它。从上往下数最后一个有个设备管理器,最后有个显示适配器点开它,里面就是显卡了。CPU的话就点处理器。内存右击计算机,单击属性,(CPU也可以看,但设备管理器更详细)(Windows)
如果是苹果 MAC OS X系统那就点击苹果图标,关于本机->更多信息->系统报告就可以看
查看苹果处理器方法如下:
工具:iPhone 12、IOS 1511。
1、打开通用打开手机设置,在功能栏找到通用,点击进入。
2、打开关于本机进入通用页面后,点击关于本机。
3、查看型号名称进入关于本机页面后,找到型号名称,复制型号名称。
4、打开手机自带的浏览器Safari在搜索框内粘贴刚才复制的型号名称后,点击参数。
5、进入参数页面后,找到CPU型号,后面的数据即为手机处理器型号。
以上就是关于iOS性能优化之内存优化全部的内容,包括:iOS性能优化之内存优化、如何使用 SNMP 收集 Cisco IOS 设备的 CPU 使用率、iphone处理器在哪里看等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)