包含标签 performance 的文章

Socket服务器性能测试器+源码

2011-08-05升级:加入自定义数据发送的功能,规则:s字符串,b字节,i长整数,u无符号整形,n短整形。例如 :n1000,b1,i65555,s你懂的

为了测试新服务器的连接承载能力,我花了点时间写了这个测试器,但其实这只能算个雏形而已。

后来测试器使用C#重写,所以这个测试器就没再修改和更新,里面已有的BUG也没怎么解决。

目前的版本实现了以下功能:

  • 指定连接数量;
  • 允许指定连接间隔时间;
  • 发送指定大小的测试数据包;
  • 自动写入log文件(不要妄想用TextArea显示Log,最后程序会直接被log信息的更新拖死……)
  • 加入自定义数据发送的功能,规则:s字符串,b字节,i长整数,u无符号整形,n短整形。例如:n1000,b1,i65555,s你懂的
……

阅读全文

比较Object/Dictionary/Array顺序读写性能

2011-07-01更新:关于字符串创建时间的计算,以及一些新发现。

一个既需要顺序读取又需要随机读取的表,采用什么进行存储比较合适呢?

我们知道,Object和Dictionary适合随机存取,而Array和Vector适合顺序存取(**关于Array和Vector的性能可以看这篇文章: **Array/Vector/AS3DS/ds/dsforas性能比较 ),但它们之间的性能差距有大呢?

分析如下:

  1. Object的写性能低于Dictionary;
  2. Object与Dictionary的读写性能基本相当;
  3. Object在使用数字键名的时候,读写速度接近Array;
  4. AS会优化使用过的Object的字符串键名,因此对于整个程序的运行时间来说,创建字符串的时间不是问题;但对于性能测试来说,是很大的问题;
  5. AS也会优化创建变量的过程(或许是在编辑器层次优化?),所以对于字符串和数字等类型,把var放在循环外部,是一种良好的习惯,但对性能或许影响不大(相比而言,new的影响更大);
  6. 对于Object和Dictionary的读取,使用for each循环性能最高,已经接近Array了;
  7. 对于Array的读取,for循环性能最高。

为什么for each循环在Object与Array上的表现正好相反呢?这正体现了这两种数据结构的特性,for在顺序存取上性能高,for each在随机存取上性能高。因此,对于Object和Dictionary的读取,应尽量使用for each,而对Array和Vector则尽量使用for。

for each和for in循环在Object与Array上的性能,取决于Object是采用字符串键名还是采用数字键名。如果Object采用的是字符串键名,则for each和for in在Object上的表现就与Array一致。否则,她们的表现就与Array正好相反。

测试结果:

Object write:7582
Object for read:2309
Object for in read:234
Object for each read:103
Dictionary write:2557
Dictionary for read:2302
Dictionary for in read:242
Dictionary for each read:94
Array write:90
Array for read:64
Array for in read:81
Array for each read:79

……

阅读全文

Array/Vector/AS3DS/ds/dsforas 性能比较

AS3DS是我们常用的数据结构,后来polygonal又开发了ds,国人也开发了一套dsforas。那么,这些常用的数据结构与AS3原生的Array和Vector,性能上有何区别?我在网上只找到了这篇,该文也没有给出一个直观的演示,因此决定自己来测试一下。

测试平台:

  • AS3DS: v1.04
  • ds: v1.23
  • dsforas: r25
  • Flash Player: v10.2.152.26
类型 写入(ms) 读取(ms)
Array 452 132
Vector 256 130
SLinkedList 2708 1718
SSL 1266 222
LinkedList 1498 1392

注意:

  • 这次测试只是针对单链表测试了1000000个随机数的顺序写入和读取速度,不能代表整体性能。(链表的性能特点看这里:数据结构的优缺点
  • 使用AS3DS,文件增大4K;使用ds,文件增大16K。
  • AS3DS和ds不能在一个项目中测试,因为很多类名重复,必须分开测试。
……

阅读全文

【转】Flash高性能开发基础系列—内存篇

转自:青竹的日志

内存优化在项目是一个重要的环节,如果不合理的利用和回收内存会合你的程序整体大大下降.

合理使用对象

创建不同对象一般所消耗的内存是不一样的。如:Number 消耗 8 个字节,int消耗4个字节, uint消耗 4个字节.下面我举一些例子:

1. int 类可使用表示为 32 位带符号整数的数据类型。 int类表示的值的范围是:-2,147,483,648 (-2\^31)2,147,483,647 (2\^31-1),所以如果你的取值范围在 -2,147,483,648 (-2\^31)2,147,483,647 (2\^31-1) 请你用int而不是用Number(刚从2.0转过来的人可能喜欢用Number) uint 范围是0 到 4,294,967,295 (2\^32-1) 之间, Actionscript3 中类型很少,所以这些只要你平时稍加注意一下就行.

2. 合理使用Shape与Sprite,MovieClip,你可能用MovieClip可以完成Sprite与Shape的功能,但是他们所需的内存是不一样的Shape需要 236 字节,Sprite 需要 412字节, MovieClip 需要440字节,如果你只想显示图形没有交互那你使用Shape,如果是有交互的图形你可以用Sprite,如果是动画你才用MovieClip.

以上只是2个常见的实例,其实在as3中还有很多值得注意的这类情况。我还看到有些大哥为了派发一个事件而去继承Sprite类,Sprite需要消耗400字节, EventDispatcher只需要40字节。

……

阅读全文

最近文章

分类

标签

3d aac actionscript adobe adobebug adsl air amd android ane ant antivirus apache api arch as2 as3 asdoc asp aspnet authorware bash bbpress benq bitandbyte bitmapdata bluetooth book box2d browser byewindows c camera capture centos character-set choice chongrenxindu chrome class cms cocos2d-x codec collection color component conference cookbook coolplayer cpp css cygwin datagrid debug degrafa design-pattern develop devops director display-objects docker dragonbones ds eclipse editgrid egret embed emotion encrypt engine english eval excel exif fcs ffmpeg filter firebase firefox flash flash-remoting flashbuilder flashdevelop flashplayer flask flex flexbuilder flv fms font framework freeware fte ftp fxg game gcc general generator git gmail godaddy golang google gprs graphic graphviz gtd gui h264 hardware hexo host house howto hp html html5 http hugo i18n ie image ime ios iot jacky-cheung java javascript job joomla journey jquery json layout lecture library life lighttpd linux lisp list live loader lua mac macos mambo management markup master math mencoder mingw mobile mobile-game-framework module monitor mvc mxmlc mysql ndk netconnection netstream network nginx node nodejs note objective-c office opengl openresty opensource ops osmf osx pay pda performance photoshop php physics player plist plugin portable posix ppc protocol proxy python qiqi qt quick2cocoslua reading reflection regexp ria robotlegs router rtmp ruby sagiteam sandbox sdk server sharedobject shell signals simulator skeletalanimation skin sleepmode smartphone socket software spark spreadsheet spritesheet sql sqlalchemy ssh staticize study svn swfobject terminal testing thread tipsandtricks tlf trace training translate translation tween typescript ubuntu ugly ui unity usingrobotlegs2 utf-8 uwsgi validator vcard vector video vim virtualization vr web weboffice websocket wifi windows wine word wordpress wuhan xbeta xinnet xml youshootfirst zhihu

其它