优化效率
文章平均质量分 66
wkyb608
这个作者很懒,什么都没留下…
展开
-
Go 的垃圾回收机制在实践中有哪些需要注意的地方?
之前回答问题的时候Go还处在1.1版本,到了1.2和1.3,Go的GC跟踪命令和GC内部实现已经有一些变化,并且根据评论中的反馈,这边一并做补充说明。Go 1.2之后的GC跟踪环境变量已经改为GODEBUG="gctrace=1",具体参数说明可以参考runtime包的文档。Go 1.3对GC做了优化,回收机制也改变了,从我的实验观测来看,用做内存存储时候产生的持久性的大量对象,一转载 2015-08-22 11:29:39 · 1695 阅读 · 0 评论 -
网页游戏性能优化最佳实践:延迟策略
网页游戏,尤其是多人同时在线的即时战斗webgame,性能优化是开发过程中、开发后期必然遇到的问题。历经磨难,总结出了一个最佳实践:延迟策略。其实说白了,就一句话:不要在一帧里做太多事。然后展开总结一下。理解Flash Player的异步单线程首先我们应该理解Flash Player的异步单线程机制。当然,最近刚出现的新版本FP的多线程API除外。FP的单线程表现在,我们可以控制的原创 2012-10-29 19:32:20 · 644 阅读 · 0 评论 -
《Flash Player 多元件性能测试报告》作者:寂寞火山
★测试环境:→硬件环境:Intel (R) Core (TM)2 Duo CPU T5850 @2.16GHz,2.00GB内存。 →软件环境:FLASH CS3,Adobe Flash Player 9.0 r45,AVM2。 →FLASH IDE环境:舞台尺寸:750×500像素,帧频:24 fps。→测试报告源文件:点击进入火山门户相关帖★本文所用到的简称:转载 2012-10-17 20:28:48 · 746 阅读 · 0 评论 -
将编译AS3区分Debug版本和Release版本
首先我们区分AS3的编译版本,目的是让同样的code,如果使用debug编译,则会含有很多测试代码方便调试;如果使用release编译,则不会将调试代码编译进去。用过Visual Studio(以下简称VS)的程序员都知道,VS在编译时有个debug和release的选项,而flash builder(以下简称fb)在编译时,虽然可以选择不同路径编译,但无法像VS那样真正的区分编译版本。下转载 2012-10-17 20:18:16 · 1047 阅读 · 0 评论 -
Flash Player 11异步解码Bitmap
Flash Player 11引入了一个全新的功能是异步解码位图的功能,这个功能对某些类型的Flash应用会很有效,尤其是需要加载大分辨率的位图的相册或游戏会有显著效果。这个功能在Flash Player 11里的实现非常简单,需要使用flash.system.ImageDecodingPolicy这个类。这个类的使用,是通过flash.system.LoaderContext类中制定im转载 2012-01-06 18:43:42 · 607 阅读 · 0 评论 -
ActionScript & Flex中快速给ArrayCollection排序的方法
这篇帖子讲的是在ActionScript中用一个快捷的方法来排序ArrayCollection,这方法就是基础Array中的sortOn方法。为了快点我只用了少量代码——我对执行结果就不作陈述了。通常排列一个ArrayCollection你需要创建Sort和SortField类的实例,最终写出如下代码(不能测试的代码仅为留个印象):var sort:Sort = new Sort(转载 2011-11-09 11:05:54 · 823 阅读 · 0 评论 -
构建更加完善的Adobe AIR应用程序之十大秘诀
[构建更加完善的Adobe AIR应用程序之十大秘诀]http://t.cn/SyXHRw 本文介绍了用来提高 AIR 应用程序的性能、可用性及安全性,并使开发流程更加迅速简便的十大技巧。写得相当精彩,我仔细阅读了其中的每一点,受益良多。由于我们已经推出了AIR 2,我想这将是回顾我在过去几个月编写的所有 AIR 代码的一个绝佳时机,我会精选一些最佳代码段和概念在社区内分享。本文介转载 2011-11-23 14:22:06 · 1026 阅读 · 0 评论 -
关于垃圾回收API的中文解说:System.pauseForGCIfCollectionImminent()
Flash Player 11 新增了这个跟垃圾回收紧密相关的API:pauseForGCIfCollectionImminent() 方法。Adobe推出中文的语言参考了:如果垃圾回收器的临界值超过函数的临界参数,则建议回收器应完成增量回收循环。在标记使用的内存时,Flash 运行时垃圾回收器算法将增量运行。当回收内存的未使用部分时,该算法将暂停应用程序的执行。在增量回收循环原创 2011-11-01 10:51:22 · 819 阅读 · 0 评论 -
谈谈ActionScript垃圾回收
在《给AS程序员的一点建议一文》中我提到了释放资源的重要性。最近在一些项目过程中我又对这方面有了更多的理解,在此希望能够分享给大家。首先让我们来回顾一下关于垃圾回收(Garbage Collection,下文简称GC)的一些知识。要阅读本文,你需要对GC机制有些基本认识。在ActionScript中,我们没有API可以直接删除一个对象,也不能控制Player进行GC。但是GC的行为是可以预转载 2011-11-22 10:59:15 · 606 阅读 · 0 评论 -
大型Flash项目性能优化:关注0ms方法
注:搞网页游戏两年,两耳不闻窗外事(只是偷偷上微博),居然没了整理的习惯。是时候好好整理和总结了。Flash大型项目尤其是多人同时在线的webgame,性能优化是一个很重要的部分。性能优化大概就是两个部分:内存优化、CPU优化。所谓CPU优化,说白了就是降低CPU使用率。我们首先要解决的一个问题是:让代码不要做当前不需要做的事。最近我们的项目(MMOARPG)加东西比较多,从Win转载 2012-10-29 19:37:56 · 745 阅读 · 0 评论 -
一个不错的博客
http://jsfox.cn/blog/原创 2012-10-29 19:43:31 · 581 阅读 · 0 评论 -
游戏中实现物体的精确选择
最简单也是最高效的方法:1. 制作flash动画的时候,在Flash CS里面把图片的alpha 通道删除掉, 这样就只有 图像区域响应MouseOut,MouseOver事件,透明区域不响应。具体方法:选中图片->分离 取消选中 工具面板->套索->魔术棒 设置为:"像素",阀值:"0" 点一下透明地方然后按del键 2. 下面这种方法适合 采用序列帧图片生成动转载 2012-10-29 19:41:39 · 568 阅读 · 0 评论 -
iOS系类教程之用instruments来检验你的app
比较了好多关于instruments 还是发现老外写的比较牛逼.于是果断翻译过来.有能力的的可以去看英文原版,鼓励大家看原版资料远离二手教程。这里是原文 入门为了节省大家的时间,提供一个演示的Demo给大家。代码传送门. 下载后解压然后用xcode打开。 编译运行APP后 然后在搜索框内输入任意词汇,点击结果你会看到下面的结果转载 2015-04-14 18:16:21 · 497 阅读 · 0 评论 -
OPENGL混合
今天介绍关于OpenGL混合的基本知识。混合是一种常用的技巧,通常可以用来实现半透明。但其实它也是十分灵活的,你可以通过不同的设置得到不同的混合结果,产生一些有趣或者奇怪的图象。混合是什么呢?混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。假设我们需要绘制这样一个场景:透过红色的玻璃去看绿色的物体,那么可以先绘转载 2015-04-01 14:19:08 · 490 阅读 · 0 评论 -
使用命令行工具提升cocos2d-x开发效率 之TexturePacker篇
TexturePacker是一个常用的制作sprite sheet的工具,它提供了很多实用的功能。一般我们制作sprite sheet都是使用他的gui版本,纯手工操作,就像下面这张图示的一样。刚开始我们的项目也是使用这种方式,但后来发现这种方式在开发中有很大的问题。随着图片的增多,sprite sheet会越来越多,为了生成这些sprite sheet需要做很多重复的手工原创 2015-03-31 09:52:51 · 590 阅读 · 0 评论 -
C++编译速度优化尝试
不管VC还是GCC也好,.cpp文件多了,模板多了,那编译速度也就慢了,有时会长达10分钟以上,甚至更长。因为主要是在linux下开发,所以VC就不尝试了。有一天,突然想到,如果整个工程,只编译一个文件,是不是可行?然后,就手动做了一个尝试。然后如下做:首先写一个.cxx文件,用#include把这些.cpp全部包含进来再修改makefile,去除.cpp,.CPP的目标生成,原创 2015-03-30 11:07:46 · 2029 阅读 · 0 评论 -
[cocos2d-x]如何减少cocos2d-x游戏的耗电量?
Cocos2d-x游戏的耗电量一直是个让人头疼的问题,一个简单的三消游戏,玩一会手机就热得发烫,更郁闷的是电池消耗很快,基本上两个小时就可以把电池耗光。最近又看到一个帖子,有个老外用cocos2d-x在安卓上移植了2048这个小游戏,一切顺利,除了手机会发烫。看来这确实是一个让人很不爽的问题。 我以前做过windows桌面系统,知道在windows上,屏幕不会每帧都全屏重绘,而是提供转载 2014-05-06 21:31:54 · 961 阅读 · 0 评论 -
通过Adobe Scout深入理解Flash播放器
转自:http://www.cnblogs.com/gg_shily/archive/2013/01/31/2881948.html原文:Understanding Flash Player with Adobe Scout作者:Mark Shepherd作者:Michael SmithAdobe Scout 是优化Flash内容异常强大的工具,因为他可以让你看转载 2013-07-22 16:10:04 · 1108 阅读 · 0 评论 -
往TextField的htmlText属性添加img标签时的更有趣现象
TextField的htmlText属性,大家都使用过了。向其添加img标签后,你可以通过src属性添加图片,有趣的是你还可以添加swf影片。但,我刚才在这篇文章里发现更有趣的是,你还可以添加DisplayObject类及其子类!package { import flash.display.MovieClip; import flash.text.T转载 2013-01-29 22:43:01 · 1013 阅读 · 0 评论 -
在Flash Pro、FlashDevelop 等中使用Monocle的高级分析功能
Monocle工作界面 之前发了一篇《[译]在Flash Builder 中使用 Monocle》。但很多Flash开发者没有使用Flash Builder,却仍然希望使用Monocle的高级分析功能。 对此,Monocle的文档有说明:“如果你不想更换Flash Builder的版本,也可以在你的.swf文件中运行add-advanced-tele转载 2012-10-25 23:41:04 · 1266 阅读 · 0 评论 -
FlashPlayer和AIR内部的垃圾回收机制
好文推荐: FlashPlayer和AIR内部的垃圾回收机制: http://www.adobe.com/devnet/actionscript/learning/oop-concepts/garbage-collection.html原创 2011-11-01 10:39:55 · 742 阅读 · 0 评论 -
AS3与数据结构
时至今日国内外都还没有一本讲AS3与数据结构的书,对于我这种非科班毕业的社会闲杂人等来说,欲入门数据结构只能从其他语言的古书下手学习,因为有些数据结构随着编程语言的进化已经隐藏在高级语言的API里了,还有些随着计算机硬件的发展对现在的Flash程序开发也已经不再适用了。其实对于现阶段的Flash开发,基本上数组和Object可以搞定一切了,在Flash中的Array和Object可以组成千变万化的转载 2011-10-27 15:52:10 · 875 阅读 · 0 评论 -
关于Flash Builder 4.x的概要分析
<br /><br />分析应用程序能够帮助我们确定以下问题:<br />调用频率 有时,我们会多次调用一些计算代价昂贵(耗时)的方法,而这些调用是不必要的。通过识别那些经常被调用的方法,我们能够在调节性能的过程中,专注于应用程序中对性能影响最大的地方。<br />方法耗时 性能分析工具能够告诉我们一个调用特定方法所消耗的时间。如果这个方法被调用了多次,性能分析工具将告诉我们,在与应用程序交互的这段时间里,调用这个方法所消耗的平均时间。如果其中的一些方法造成了性能瓶颈,我们可以想办法优化一下它们。<br /原创 2011-05-17 01:10:00 · 804 阅读 · 0 评论 -
Peter的Flash游戏优化技巧讲座PPT及示例下载
Peter在infoQ做了在线的Flash游戏优化技巧讲座,有很多相当值得大家掌握的好经验。我找来了这次讲座的PPT及示例下载:Flash游戏优化技巧讲座ppt :http://www.xncat.com/wp-content/uploads/2011/03/optimization-ppt.rarFlash游戏优化技巧讲座demo :http://www.xncat.com/wp-content/uploads/2011/03/optimization-demo.rar转载 2011-03-19 01:10:00 · 644 阅读 · 0 评论 -
利用AS3块传输技术呈现游戏元素
<br />许多类型的游戏,用户体验都依赖于终端可拥有的屏幕像素和移动物体有多快。当让大量的DisplayObject对象动起来时,如MovieClip或Sprite对象,Adobe Flash Player可能在表现上会大大折扣。Flash Player必须遍历显示对象树并为每个基于向量的DisplayObject计算渲染输出,这样会消耗CPU周期成为真正的瓶颈,尤其是低端机。<br /> 许多屏幕动画游戏都是预先载入一张位图,这种技术被称为blitting(块传输)。块传输虽转载 2011-01-27 18:38:00 · 1671 阅读 · 0 评论 -
减少滤镜的使用
<br /> 对位图添加了滤镜的功能后,flash player会在内存中创建两个位图,这两个位图大小与现实对象相同,一个是栅格化的位图,另一个是用于生成滤镜的位图,当修改滤镜的一些属性的时候,内存中的两张位图都会更新以创建生成的位图,此过程会涉及到一些cpu处理,这两个位图可能会占用大量的内存,因此一般的会采用创作工具创作的位图来模拟滤镜效果原创 2010-11-25 10:23:00 · 737 阅读 · 0 评论 -
再谈cacheAsBitmap
<br />cacheAsBitmap这个属性很多人都知道,但少有人明白它到底是如何生效的。虽然看名字是转换为位图处理,但用起来的时候感觉却也不是如此。所以,不少人最终选择自己转换Bitmap。<br />当然,自己转Bitmap也是可以的,也只是多浪费点内存和处理速度,然后麻烦点罢了。但事实上,很多时候cacheAsBitmap已经足够使用了。<br /><br />先得说说FLASH的屏幕更新机制。在Debug播放器内,可以勾选显示重复区域来以红框显示更新区域。也就是说,FLASH并不会原创 2010-11-25 11:41:00 · 897 阅读 · 2 评论 -
提高 flash /air 的显示渲染性能
<br />一些常用的老方法:<br /><br />1、不使用Alpha<br />2、对矢量做catch<br />3、配合cachAsBitmap<br />4、使用bitmapdata,内存换取cpu<br />5、尽量减少重绘区域,点击右键查看<br />6、设置播放品质(3D里的)<br />原创 2010-11-25 11:39:00 · 1054 阅读 · 0 评论 -
AS3代码优化技巧整理
<br />本贴的代码效率测试均在该贴提供的框架下进行:<br />http://bbs.9ria.com/thread-57015-1-2.html<br /><br />测试环境:FlashCS5 Professional<br />系统:WindowsXP_SP2<br />CPU:AMD Athlon(tm) 64 Processor 1.81GHz<br />内存:2.50GB<br /><br />防火墙全部处于关闭状态<br /><br />数学类代码优化的基本原则转载 2010-11-23 10:38:00 · 1113 阅读 · 0 评论 -
Flash占cpu优化
<br /> 有的网页看起来并不大但打开会很卡,有的网页虽然很长但使用流畅,占用用户电脑的内存与CPU就影响这些。浏览器问题,有各自的浏览器处理内存问题会影响到,但几乎没办法控制得了,Windows上的:<br /><br /> IE系列,刷新回收的量不大,但最小化会释放内存,。<br /> Firefox2据说也会在最小化回收,可我从没见过最垃圾,用多少是多少,基本不回收。据说prototype的ajax还会引起内存一直增加。<br /> Opera最好。一直控制得很好。不存在什原创 2010-12-02 15:49:00 · 964 阅读 · 0 评论 -
再谈cacheAsBitmap
cacheAsBitmap这个属性很多人都知道,但少有人明白它到底是如何生效的。虽然看名字是转换为位图处理,但用起来的时候感觉却也不过如此。所以,不少人最终选择自己转换Bitmap。当然,自己转Bitmap也是可以的,也只是多浪费点内存和处理速度,然后麻烦点罢了。但事实上,很多时候cacheAsBitmap已经足够使用了。先得说说FLASH的屏幕更新机制。在Debug播放器内,可以勾选原创 2011-10-24 17:25:34 · 514 阅读 · 0 评论 -
Why cacheAsBitmap is bad!
One of the feature I would really love to see in a future release of the Flash Player is a native rasterizer for display objects. Imagine something like :1.myMovieClip.rasterize = true;转载 2011-10-24 17:36:40 · 449 阅读 · 0 评论 -
getChildAt与getChildByName效率比较
getChildAt() 方法比getChildByName() 方法快。getChildAt() 方法从缓存数组中访问子项,而getChildByName() 方法则必须遍历链接的列表来访问子项。原创 2011-10-24 16:43:49 · 1821 阅读 · 0 评论 -
Flash 平台技术的优化: 事件捕获和冒泡
使用事件捕获和冒泡可以最大程度地减少事件处理函数。ActionScript 3.0 中的事件模型引入了事件捕获和事件冒泡的概念。利用事件冒泡可帮助您优化 ActionScript 代码执行时间。您可以在一个对象(而不是多个对象)上注册事件处理函数以提高性能。例如,想象创建这样一种游戏,在该游戏中用户必须以最快的速度单击苹果以将其销毁。该游戏将删除屏幕上各个被击中的苹果并为用户增加分数。要侦听由原创 2011-10-27 15:16:10 · 537 阅读 · 0 评论 -
updateAfterEvent的用处
一般情况下没有API调用可以强制flash player进行渲染,除非,在mouse/keyboard/timer event里面调用event.updateAfterEvent(), 会强制flash player在event处理结束后做一次render.FLASH:(狂点击FLASH会触发updateAfterEvent的调用,强制刷新flash舞台)测试代原创 2011-10-26 17:46:24 · 1071 阅读 · 0 评论 -
导致flash屏幕重绘的几种方式及避免重绘的方法
导致屏幕重绘的几种原因:1、最常见的是情况就是舞台上的可视组件在形状、位置、状态(alpha, scale…)发生改变的时候会触发Flash Player 的重绘。2、当一个DisplayObject的层级(ChildIndex)发生改变的时候也会导致重绘。3、当你将一个Sprite / MovieClip 的buttonMode 设置为 true 的时候,即便是单原创 2011-10-26 18:58:01 · 773 阅读 · 0 评论 -
深入理解Flash Player重绘
Flash Player 会以SWF内容的帧频速度来刷新需要变化的内容,而这个刷新的过程,我们通常称为“重绘(redraw)”,相信即便是初级的菜鸟也知道,只要使用的是Debug版本的Flash Player, 右键菜单里就会有“Show Redraw Regions (显示重绘区域)” 这个选项,当此选项打开的时候,我们就能清楚地看到此刻场景内被重绘的区域。那么什么情况下会发生重绘呢原创 2010-11-25 11:38:00 · 887 阅读 · 0 评论 -
as3 updateAfterEvent的作用
flash中一共有三个类具有该属性,这三个类分别是:KeyboardEvent,MouseEvent,TimerEvent。调用updateAfterEvent 属性的事件,可强制立即执行呈现操作,而不是等到呈现阶段。但是,如果 updateAfterEvent 频繁导致性能问题,应避免使用它。1.updateAfterEvent怎么用?有很多人做鼠标追随效果的时候,总是发原创 2011-10-26 16:55:17 · 1761 阅读 · 0 评论 -
flash中cacheAsBitmap的使用
缓存显示对象 如果 Flash 中的设计尺寸增大,无论创建的是应用程序还是复杂的脚本动画,都需要考虑性能和优化。如果内容保持为静态(如矩形 Shape 实例),Flash 不会优化内容。因此,更改矩形的位置时,Flash 将重绘整个 Shape 实例。可以通过缓存指定的显示对象来提高 SWF 文件的性能。显示对象是一个“表面”,实际上是位图版本的实例矢量数据,矢量数据是 SWF 文件中不需要有原创 2011-10-24 17:18:22 · 661 阅读 · 0 评论 -
MouseEvent的target和currentTarget属性区分
MouseEvent有target和currentTarget两个属性。这两个属性有区别,target返回的是最先接收到点击的交互物体,而currentTarget返回的是你addEventListener注册的这个对象。target 属性 事件目标。 此属性包含目标节点。 例如,如果用户单击“确定”按钮,则目标节点就是包含该按钮的显示列表节点。currentTarget 属性原创 2011-10-25 13:17:54 · 1498 阅读 · 0 评论