[原]unity3d ios平台内存优化(一)
关于内存优化,人云亦云 各有己见。本文将通过设置Strpping Level ,减少内存使用。
先看三幅图:
1、没做任何优化,默认选项 
2、设置Stripping level 为 Use micro mscorlib; 设置 script call Optimization为Fast but no exceptions

因为本demo用到jsonFX json解析器,牵扯到system.dll 里面的东西,所以程序直接崩掉。(Don't use anything that lives in System.dll or System.Xml.dll in your code. Those two are not compatible with micro mscorlib.)
3、解决了以上bug,优化后的效果:
内存基本减少了8.5MB 左右
如何解决第二部的残留问题呢:官方给了这么一个说法
How to Deal with Stripping when Using Reflection
Stripping heavily depends on static code analysis and sometimes it fails to do the job right, especially when dynamic features (like reflection) are used. In such cases some hinting what classes shouldn't be touched is needed. Unity iOS supports per project custom stripping black list. The process is simple:
1. Create link.xml file and place it directly into Assets (project root) folder.
2. link.xml sample structure is as follows:
<linker>
<assembly fullname="System.Web.Services">
<type fullname="System.Web.Services.Protocols.SoapTypeStubInfo" preserve="all"/>
<type fullname="System.Web.Services.Configuration.WebServicesConfigurationSectionHandler" preserve="all"/>
</assembly>
<assembly fullname="System">
<type fullname="System.Net.Configuration.WebRequestModuleHandler" preserve="all"/>
<type fullname="System.Net.HttpRequestCreator" preserve="all"/>
<type fullname="System.Net.FileWebRequestCreator" preserve="all"/>
</assembly>
</linker>
结合本例:需要如下link.xml文件
<linker>
<assembly fullname="System">
<type fullname="System.ComponentModel.TypeConverter" preserve="all"/>
<type fullname="System.ComponentModel.ArrayConverter" preserve="all"/>
<type fullname="System.ComponentModel.BaseNumberConverter" preserve="all"/>
<type fullname="System.ComponentModel.BooleanConverter" preserve="all"/>
<type fullname="System.ComponentModel.ByteConverter" preserve="all"/>
<type fullname="System.ComponentModel.CharConverter" preserve="all"/>
<type fullname="System.ComponentModel.CollectionConverter" preserve="all"/>
<type fullname="System.ComponentModel.ComponentConverter" preserve="all"/>
<type fullname="System.ComponentModel.CultureInfoConverter" preserve="all"/>
<type fullname="System.ComponentModel.DateTimeConverter" preserve="all"/>
<type fullname="System.ComponentModel.DecimalConverter" preserve="all"/>
<type fullname="System.ComponentModel.DoubleConverter" preserve="all"/>
<type fullname="System.ComponentModel.EnumConverter" preserve="all"/>
<type fullname="System.ComponentModel.ExpandableObjectConverter" preserve="all"/>
<type fullname="System.ComponentModel.Int16Converter" preserve="all"/>
<type fullname="System.ComponentModel.Int32Converter" preserve="all"/>
<type fullname="System.ComponentModel.Int64Converter" preserve="all"/>
<type fullname="System.ComponentModel.NullableConverter" preserve="all"/>
<type fullname="System.ComponentModel.SByteConverter" preserve="all"/>
<type fullname="System.ComponentModel.SingleConverter" preserve="all"/>
<type fullname="System.ComponentModel.StringConverter" preserve="all"/>
<type fullname="System.ComponentModel.TimeSpanConverter" preserve="all"/>
<type fullname="System.ComponentModel.UInt16Converter" preserve="all"/>
<type fullname="System.ComponentModel.UInt32Converter" preserve="all"/>
<type fullname="System.ComponentModel.UInt64Converter" preserve="all"/>
</assembly>
</linker>
第二步的错误得出 JsonFX需要依赖System.dll中的类型转化函数,所以通过以上link文件 保留system.dll中的类型转换函数。
另附:反射的link如下:
<linker>
<assembly fullname="mscorlib">
<type fullname="System.Reflection"preserve="all"/>
<type fullname="System.Security.Cryptography"preserve="all"/>
</assembly>
</linker>
参考资料:http://www.rbcafe.com/Softwares/Unity/Documentation/Manual/iphone-playerSizeOptimization.html
[原]unity3d ios平台内存优化(一)的更多相关文章
- [转]ios平台内存常见问题
本文转自CocoaChina,说的满详细的: 链接地址:http://www.cocoachina.com/bbs/read.php?tid=94017&keyword=%C4%DA%B4%E ...
- Unity3D移动端内存优化(NGUI方面)
Unity3D引擎技术交流QQ群:[21568554] 做3d移动端内存一直是人们头疼的问题,载入的资源释放了,还有其它的须要释放.比方ngui释放,事实上主要是NGUI的Texture和Spr ...
- Unity3D 的大场景内存优化
我们公司的一个 MMORPG 项目最近在内存方面碰到了红线,昨天开会讨论了一下.我提出了一个改进方案,写篇 blog 记录一下. 问题是这样的.在当下的手机及平板硬件设备条件下,操作系统留给应用的可用 ...
- iOS App内存优化之 解决UIImagePickerController的图片对象占用RAM过高问题
这个坑会在特定的情况下特别明显: 类似朋友圈的添加多张本地选择\拍照 的图片 并在界面上做一个预览功能 由于没有特别的相机\相册需求,则直接使用系统自带的UIImagePickerController ...
- [原]unity3D 移动平台崩溃信息收集
http://m.blog.csdn.net/blog/catandrat111/8534287http://m.blog.csdn.net/blog/catandrat111/8534287
- iOS基础 - 内存分析
一.内存的重要性 程序是否可用的最根本的制约因素. 十分影响用户体验. 程序的crash有很多情况都是内存的原因. 二.iOS平台内存警告机制 iOS系统不支持虚拟内存,一旦出现内存不足的情况,iOS ...
- Unity3D 游戏开发之内存优化
项目的性能优化主要围绕CPU.GPU和内存三大方面进行. 无论是游戏还是VR应用,内存管理都是其研发阶段的重中之重. 然而,在我们测评过的大量项目中,90%以上的项目都存在不同程度的内存使用问题.就目 ...
- 转 iOS和android游戏纹理优化和内存优化(cocos2d-x)
iOS和android游戏纹理优化和内存优化(cocos2d-x) (未完成) 1.2d游戏最占内存的无疑是图片资源. 2.cocos2d-x不同平台读取纹理的机制不同.ios下面使用CGImage, ...
- iOS性能优化-内存优化
https://blog.csdn.net/a184251289/article/details/82589128 2018年09月10日 14:25:31 xingshao1990 阅读数:328 ...
随机推荐
- javascript 60行编写的俄罗斯方块游戏
转自 http://***/share/1759652641295360.htm <!doctype html><html><head></head>& ...
- linux 网络安全不完全笔记
一.安装Centos二.Linux网络网络环境设置 a.配置linux与客户机相连通 b.配置linux上网三.Yum详解 yum 的基本操作 a.使用 yum 安装新软件 yum install – ...
- PCL点云特征描述与提取(2)
点特征直方图(PFH)描述子 正如点特征表示法所示,表面法线和曲率估计是某个点周围的几何特征基本表示法.虽然计算非常快速容易,但是无法获得太多信息,因为它们只使用很少的几个参数值来近似表示一个点的k邻 ...
- LibGDX skins
https://github.com/czyzby/gdx-skins ———————————————————————————————————————————— LibGDX comes with a ...
- 《jdk10》删除javah.exe文件,在Android studio编译jni,使用jdk10生成头文件
今天在用“死丢丢”编译so包的时候,只要一输入"javah -jni..."的命令就会一直提示 'javah'不是内部命令或外部命令,也不是可运行的程序或批处理文件 找了很久才发现 ...
- JAVA NIO 简单介绍
Version:0.9 StartHTML:-1 EndHTML:-1 StartFragment:00000099 EndFragment:00918492 一:为什么要使用NIO技术 ...
- SAP HR模块的基础数据表和增强配置
信息类型是SAP HR模块数据单元,用于对人员数据的记录和维护,是HR的基础.信息类型按照其创建方式的不同可以分为:人事信息类型.组织信息类型.信息类型数据的维护主要在事物码PA30.PA40.po1 ...
- (笔记)Mysql命令select from:查询表中的数据(记录)
select from命令用来查询表中的数据. 1) 查询所有行命令格式: select <字段1, 字段2, ...> from < 表名 > where < 表达式 ...
- QWSLock::up(): Invalid argument
运行qt时,点击QMessageBox的确定按钮是出现错误QWSLock::up(): Invalid argument, QWSLock::down(): Invalid argument,这个是q ...
- Spring JDBC StoredProcedure类示例
org.springframework.jdbc.core.StoredProcedure类是RDBMS存储过程的对象抽象的超类.这个类是抽象的,目的是让子类将提供一个用于调用的类型化方法,该方法委托 ...