原地址:http://www.cocoachina.com/bbs/read.php?tid=70395&page=1

分享看见的2篇好文.
简单翻译了一下并且放出原文

http://www.cratesmith.com/archives/183

1.做减法
大量代码在Update()或FixedUpdate()中做处理,
意味着无论代码的执行速度如何,都将在每次帧刷新的时候调用到,

 

复制代码

  1. public class MyHoming : MonoBehaviour {
  2. public void Update() {
  3. // expensive targetting and not so expensive trajectory calculations in here
  4. // currently called every frame
  5. }
  6. }

但是大多数时候我们并不用这样做,考虑使用下面的方法

 

复制代码

  1. public class MyHoming : MonoBehaviour {
  2. public void Update() {
  3. // expensive targetting and not so expensive trajectory calculations in here
  4. // currently called every frame
  5. }
  6. }

它看上去更复杂一些,其实不然.只有在必要的时候才会执行代码.

2.强制指定垃圾回收的频率

 

复制代码

  1. using UnityEngine;
  2. class GarbageCollectManager : MonoBehaviour {
  3. public int frameFreq = 30;
  4. void Update()   {
  5. if (Time.frameCount % frameFreq == 0)
  6. System.GC.Collect();
  7. }
  8. }

这个操作不会改进你的fps,但是会降低内存的使用量.

3.三角形和绘图函数的调用计数

保持三角形低于7500
保持Draw Call 低于20000

可能的话使用XCODE中的工具instruments来调试图形性能.

另外一篇:
http://www.toxicblob.com/files/e61772d99deb1b4926dc5e24f080ce08-6.php

使用Strict
在你所有脚本的顶部使用 #pragma ,脚本将是强类型的,避免写代码的时候错误的类型赋值.

避免Object.Instantiate() 和 Object.Destroy()

Instantiating 和 Destroying 都不好,因为他们需要在创建和销毁对象的时候动态的分配内存,这样会短暂的影响到性能.
考虑的代替方案是使用他写的SpawnManager类.它在游戏一开始就初始化所有的对象,这样能在游戏载入的时候一同载入对象,从而让人感觉不到影响.
禁用对象的时候也保持在内存中,当需要他们的时候只需要在启用就行.

还有几点分别是
Cache Component Lookups

Use iTween Sparingly

Avoid SetActiveRecursively()

Use Builtin Arrays

Avoid String Comparison

Avoid Vector3.magnitude & Vector3.Distance()

可以在引用来源看到详细说明

Unity3d iOS基本优化和高级优化的更多相关文章

  1. SQL优化策略高级优化经常使用-1(The Return Of The King)

    1 经常使用的优化策略 1.1    语句 1.1.1使用实际的列名 当我们查询SQL语句时.你是否觉得使用实际的列名比使用*更快呢?答案是肯定的. 为了证实这一点,感兴趣的朋友能够自己验证一下.我这 ...

  2. SQL高级优化系列

    目录 SQL高级优化系列(一)之MySQL优化 SQL高级优化系列(二)之MySQL架构 SQL高级优化系列(三)之存储引擎 SQL高级优化系列(四)之SQL优化 SQL高级优化系列(五)之执行计划 ...

  3. 【转载】Spark性能优化指南——高级篇

    前言 数据倾斜调优 调优概述 数据倾斜发生时的现象 数据倾斜发生的原理 如何定位导致数据倾斜的代码 查看导致数据倾斜的key的数据分布情况 数据倾斜的解决方案 解决方案一:使用Hive ETL预处理数 ...

  4. 【转】【技术博客】Spark性能优化指南——高级篇

    http://mp.weixin.qq.com/s?__biz=MjM5NjQ5MTI5OA==&mid=2651745207&idx=1&sn=3d70d59cede236e ...

  5. 转 iOS和android游戏纹理优化和内存优化(cocos2d-x)

    iOS和android游戏纹理优化和内存优化(cocos2d-x) (未完成) 1.2d游戏最占内存的无疑是图片资源. 2.cocos2d-x不同平台读取纹理的机制不同.ios下面使用CGImage, ...

  6. iOS进阶之页面性能优化

    转载:http://www.jianshu.com/p/1b5cbf155b31 前言 在软件开发领域里经常能听到这样一句话,"过早的优化是万恶之源",不要过早优化或者过度优化.我 ...

  7. Spark性能优化指南——高级篇

    本文转载自:https://tech.meituan.com/spark-tuning-pro.html 美团技术点评团队) Spark性能优化指南——高级篇 李雪蕤 ·2016-05-12 14:4 ...

  8. iOS离屏渲染之优化分析

    在进行iOS的应用开发过程中,有时候会出现卡顿的问题,虽然iOS设备的性能越来越高,但是卡顿的问题还是有可能会出现,而离屏渲染是造成卡顿的原因之一.因此,本文主要分析一下离屏渲染产生的原因及避免的方法 ...

  9. Spark性能优化指南-高级篇(spark shuffle)

    Spark性能优化指南-高级篇(spark shuffle) 非常好的讲解

随机推荐

  1. WebGame开发总结

    不知不觉我们的项目开发有2年了,这两年来走了很多弯路,也收获了很多,今天在这里做一个总结. 项目基本情况: 服务器端采用c++和c#混合开发,网络层采用c++开发,业务逻辑用c#开发.客户端采用sil ...

  2. ejs

    这个博客比较专业些http://sunnyhl.iteye.com/blog/1985539 ejs速度不是最快的,推荐最多大概是因为其简单的语法结构.主要通过<% %><%=%&g ...

  3. [poj3274]排排站(Hash)

    题目:http://poj.org/problem?id=3274 题目大意:http://www.wikioi.com/problem/1247/ (此题中文版) 分析: 令sum[i][j]表示a ...

  4. [USACO 1.5.4]checker(水题重做——位运算(lowbit的应用))

    描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 0 1 2 3 4 5 6 ------- ...

  5. 【Groovy基础系列】 Groovy运算符

    ?运算符 在java中,有时候为了避免出现空指针异常,我们通常需要这样的技巧: if(rs!=null){ rs.next() … … } 在groovy中,可以使用?操作符达到同样的目的: rs?. ...

  6. web服务器

    1.打破信息孤岛,实现信息的集成 2.配置文件  web.xml          定义自己的服务器应该要哪些功能! 3.tomcat 是一个servlet容器,一个web服务器. 部署:将web应用 ...

  7. KK录像机破解补丁

    KK录像机是由杭州凯凯科技有限公司出品的免费的集游戏录像.视频录制.视频剪辑.添加字幕.添加音乐等功能于一体的高清视频录制软件.操作简单,且兼容录制所有游戏视频,是玩家分享精彩的工具. KK VIP功 ...

  8. JavaEE EL的一些用法

    EL 可以在指示元素中设置EL是否使用 isELIgnored="true" true是不使用 也可以在web.xml中使用 <jsp-config> <jsp- ...

  9. tomcat 的安装

    安装tomcat的前提: 首先要做的是有java环境,这里我们可以选择安装jre(java环境包).或者说安装java开发工具包ldk 我这里选择安装jdk 我们在google里搜索jdk,你就能都找 ...

  10. Tarjan算法详解理解集合

    [功能] Tarjan算法的用途之一是,求一个有向图G=(V,E)里极大强连通分量.强连通分量是指有向图G里顶点间能互相到达的子图.而如果一个强连通分量已经没有被其它强通分量完全包含的话,那么这个强连 ...