性能优化
文章平均质量分 71
FreedomRoad~
专注于app底层/架构/算法/业务工作流程,记录进步的足迹和感悟。
展开
-
建立性能的数学模型-调节参数以提高性能
示例: 高速数据采集卡的设计,在硬件和软件瓶颈下,改进了软件瓶颈,采用了一次传输的数据量合理的大(太大块可能会导致内存分配失败),那么传输速度越快。是一种类似二次函数的最高点实现了性能的优化。 经验:一次IO传输更多的数据块比多次读取少量数据有更好的性能。 参考文章中的创新点: http://www.go-gddq.com/down/2012-03/12031720065032.p原创 2015-03-15 12:43:31 · 1055 阅读 · 0 评论 -
CPU计算逻辑性能的优化
尽量不让每帧都更新。 重点关注每帧都更新的函数,频繁调用的函数。 重点关注大型的函数,算法效率复杂的函数,优化算法。 需要注意一些细节的开销。 一、用回调或观察者来代替每帧update 对于一些界面信息的更新,尽量用回调的机制来实现,而不是每帧update的方式来实现。 能够设计为回调的,能够设计为观察者模式的,都应该设计为回调为观察者。而不是用蛮力的每帧检查。原创 2015-03-13 23:55:51 · 1620 阅读 · 0 评论 -
GPU性能的优化
研究有限:以后持续补充 思路:优化贴图动画资源,常用的纹理常驻GPU显存中,使用批量渲染,编写高效的Shader分担计算任务和合理利用上GPU. 提高重用,减少加载和运算:使用Ccbatchsprite, cccreatureatals维护同一份纹理数据和暂留在GPU中的方法,可以有效的提高性能。 尽量用序列帧代替骨骼动画帧, 用光照纹理代替实时光照。用HLSL语言来原创 2015-03-14 10:27:41 · 1409 阅读 · 0 评论 -
IO性能的优化
一、加载前 1.预读取,避免后面一下子读取任务太多: 使用预先读取,分步读取,避免内存峰值突然上升。 二、加载时 2.异步加载,最有效的提高读取性能: 使用多线程,异步加载,可以有效的提高读取资源的速度。 3.使用内存文件映射,建立映射避免内核缓存,更快的读取速度 当读取的数据较大时,可以使用内存文件映射,windows中用CreateFileMapping系列函数,原创 2015-03-13 23:11:19 · 1820 阅读 · 0 评论 -
图片动画美术资源的优化-可大量的优化IO/内存/CPU/GPU性能
一、图片贴图纹理的优化压缩 http://www.58player.com/blog-2533-66464.html 1. 图片分类合并: 成plist大图文件减少内存,常驻的plist和公共的plist可以进入游戏就加载;特定界面的plist可以打开时候加载,如果太大卡顿那么进入场景时候加载,离开场景时候释放。因为Opengl是以2的整数幂申请图片纹理内存的,所以用pli原创 2015-03-14 10:52:21 · 2691 阅读 · 0 评论 -
内存性能的优化
思路:少申请内存,优化资源使得总体更少的内存,高效的利用和管理内存,内存还需要常驻内存不需要马上释放。 一、内存的申请 频繁申请的内存:因为堆内存申请比较耗时,对于频繁需要申请内存的对象,用内存池获取,避免每次向操作系统申请堆资源,可以有效的提高申请内存的时间。 非频繁的申请内存:采用传统的malloc,new的方式申请内存,不用了马上释放。 二、优化资源总体使用更少的内存 资源原创 2015-03-14 09:48:50 · 978 阅读 · 0 评论 -
程序设计性能优化整理(二)
1.函数返回值的优化 不能不返回(非类内部成员),不能返回指针(无论是从函数参数还是返回值),也不能返回引用的函数(临时对象的引用会丢掉,除非是类本身)。 那么只能返回对象,返回对象也是可以优化的,首先减少类内局部对象的构造,第二返回匿名对象编译器可以帮助优化不生成临时对象。 Number operator +(const Number &num1, const Number &num2)原创 2015-04-22 22:58:05 · 816 阅读 · 0 评论 -
程序设计性能优化整理(一)
很多时候性能问题都不是来自语言本身,编译器,网络或者IO的。凭猜想是很难得到答案的。需要用profile性能分析工具来定位问题。 很多时候是来自系统的内存开销和CPU计算导致的性能问题。性能问题100%来自于自己项目的代码,百分之10-20%的代码消耗掉了80-90%的性能。 思想方法一:lazy evaluation(懒惰计算法)-当系统CPU内存紧张时候 方法:减少避开延迟计算,原创 2015-04-19 09:51:12 · 1317 阅读 · 0 评论 -
VS2010 Profile性能分析
使用VS2010及其VS系列的分析菜单下的“启动性能向导”。 一、基本Profile分析 1)摘要视图可以选择指定的区域进行分析,比如成功运行以后的,或者高峰点进行右键筛选分析。 2)调用关系树视图 可以看到总体的性能消耗函数。 3)调用和被调用视图,可以主要的性能开销调用路径。 4)函数视图可以看到每个函数的调用情况: 定位入口点“非独占样本数”指示该函数及其调用的任何函数所原创 2015-05-05 23:48:32 · 8358 阅读 · 2 评论