http://blog.csdn.net/y1196645376/article/details/52751126
Unity3D 游戏开发之内存优化
http://www.cnblogs.com/qiaogaojian/p/5968890.html
性能分析 Profiling
http://game.ceeger.com/Manual/MobileProfiling.html
http://game.ceeger.com/Manual/UnderstandingAutomaticMemoryManagement.html
使用link.xml来控制strippinglevel减少dll库大小技巧、优化安装包大小
http://www.tuicool.com/articles/InMnaeb
https://docs.unity3d.com/Manual/iphone-playerSizeOptimization.html
性能优化,进无止境-内存篇
http://blog.uwa4d.com/archives/optimzation_memory_1.html
http://blog.uwa4d.com/archives/optimzation_memory_2.html
http://blog.chinaunix.net/uid-22996709-id-3341780.html
http://blog.csdn.net/hguisu/article/details/5713164
Android内存分析和调优(上) - 山水含清晖
http://www.tuicool.com/articles/2uM3Yj
Unity3D占用内存太大的解决方法
http://www.cnblogs.com/88999660/archive/2013/03/15/2961663.html
Unity AssetBundle爬坑手记
http://www.cnblogs.com/ybgame/p/3973177.html
UNITY3d在移动设备上的一些优化实战(一)-概述
http://blog.csdn.net/leonwei/article/details/39233921
总结使用Unity 3D优化游戏运行性能的经验
http://www.199it.com/archives/147913.html
unity 真机调试
andriod: http://blog.csdn.net/luyuncsd123/article/details/17735823
IOS:
[风宇冲]iOS调试的一个实用技巧: http://blog.sina.com.cn/s/blog_471132920101dl6h.html
使用Xcode和Instruments调试解决iOS内存泄露
http://www.uml.org.cn/mobiledev/201212123.asp
http://blog.sina.com.cn/s/blog_8157560c0101h7h3.html
Instruments 用户指南
http://cdn.cocimg.com/bbs/attachment/Fid_6/6_24457_90eabb4ed5b3863.pdf
Unity取得iOS设备的剩余可用内存
http://unity3d.9tech.cn/news/2013/1226/39390.html
http://blog.csdn.net/u013007900/article/details/50180451
你必须知道的.NET 内存分配
http://developer.51cto.com/art/201209/358697.htm
http://blog.csdn.net/youoran/article/details/10990815
http://blog.csdn.net/speedme/article/details/22943191/
Linux内存点滴:用户进程内存空间
http://blog.jobbole.com/45733/
Linux内核笔记--内存管理之用户态进程内存分配
http://www.cnblogs.com/JaSonS-toy/p/4998936.html
linnux 环境内存分配原理
http://www.360doc.com/content/14/1025/15/15064667_419739905.shtml
5.【腾讯内部工具分享】U3D资源优化工具
http://wetest.qq.com/lab/view/41.html
4. 用透了 Cube 工具。
http://wetest.qq.com/lab/view/108.html
3.tMemoryMonitor简称TMM
TMM下载地址:http://wetest.qq.com/cloud/index.php/index/TMM
tMemoryMonitor简称TMM,是一款运行时C/C++内存泄漏检测工具。TMM认为在进程退出时,内存中没有被释放且没有指针指向的无主内存块即为内存泄漏,并进而引入垃圾回收机制,在进程退出时检测出堆内存中所有没有被引用的内存单元,因而内存泄漏检测准确率为100%。
--------- 资源是否被new成多个对象,即资源重复。static解决。
--------- 该release的是否没release掉。
--------- 定位内存的方法。
我们使用 dumpsys meminfo com.xxx.xxx (app包名),查看内存占用情况如下图:
cat 一下进程,可以看到最大占用(这里包括虚拟机和原生)如下图:
adb shell cat /proc/2015/statues......
2. 严格控制static的使用,非必要的地方禁止使用static。
1. 定位内存泄漏的点:----方法
a. Cube------
b. Memory Profiler For Unity5 --------- 快照对比
那么在平时项目中,我们如何找到这些泄漏的资源呢?
最直观的方法,当然也是最笨的方法,就是在每次游戏状态切换的时候,做一次内存采样,并且将内存中的资源一一点开查看,判断它是否是当前游戏状态真正需要的。这种方法最大的问题,就是耗时耗力,资源数量太多眼睛容易看花看漏。
这里介绍两种讨巧的方法:
1) 通过资源名来识别。即在美术资源(如贴图、材质)命名的时候,就将其所属的游戏状态放在文件名中,如某贴图叫做BG.png,在大厅中使用,则修改为OG_BG.png(OG = OutGame)。这样在一坨IG(IG=InGame)资源里面,混入了一个OG,可以很容易地识别出来,也方便利用程序来识别。这么做还有一个好处,可以强化美术对资源生命周期的认识,在制作资源,特别是规划UI图集时,可以有一个指导意义。
2) 通过Unity提供的接口Resources.UnloadUnusedAssets()进行资源的Dump,可以根据需求Dump贴图、材质、模型或其他资源类型,只需要将Type作为参数传入即可。Dump成功之后我们将结果保存成一份文本文件,这样可以用Beyond Compare对多次Dump之后的结果进行比较,找到新增的资源,那么这些资源就是潜在的泄漏对象,需要重点追查。
结合上述的方法与思路,应该可以轻松找到泄漏的资源了。
腾讯Wetest平台的Cube工具提供了mono内存快照对比的功能,并包括对象分配堆栈,对象引用关系等详细信息,是定位mono内存泄漏问题的一大利器。