Array/Vector/AS3DS/ds/dsforas 性能比较
- **2011-02-11更新:**加入dsforas的测试
- **2011-02-15更新:**这里有篇更详细的评测:http://jacksondunstan.com/articles/1064
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不能在一个项目中测试,因为很多类名重复,必须分开测试。
测试代码:
1package
2{
3//import de.polygonal.ds.SLinkedList;
4//import de.polygonal.ds.SListIterator;
5
6//import de.polygonal.ds.Itr;
7//import de.polygonal.ds.SLL;
8//import de.polygonal.ds.SLLNode;
9
10import asds.list.LinkedList;
11import asds.list.LinkedListIterator;
12
13import flash.display.Sprite;
14import flash.utils.getTimer;
15
16public class DSPerformanceTest extends Sprite
17{
18 public static const MAX_COUNT:int = 1000000;
19 public function DSPerformanceTest()
20 {
21 _array = [];
22 _vector = new Vector.(MAX_COUNT, true);
23 _sl = new LinkedList(MAX_COUNT);
24 //_sl = new SLinkedList();
25 //_sl = new SLL();
26 var __t:int = 0;
27 trace('==================写入性能===============');
28 __t = getTimer();
29 for(var i:int = 0; i< MAX_COUNT; i++)
30 {
31 _array[i] = (Math.random()*1024);
32 }
33 trace('array:', getTimer()-__t);
34
35 __t = getTimer();
36 for(var j:int = 0; j< MAX_COUNT; j++)
37 {
38 _vector[j] = (Math.random()*1024);
39 }
40 trace('Vector:', getTimer()-__t);
41
42 __t = getTimer();
43 for(var k:int=0; k< MAX_COUNT; k++)
44 {
45 _sl.addAtLast(Math.random()*1024);
46// _sl.addAtFirst(Math.random()*1024);
47 }
48 trace('LinkList:', getTimer()-__t);
49
50 trace('==================读取性能===============');
51
52 __t = getTimer();
53 var __i2:Number=0;
54 for(var i2:int=0; i2;
55 private var _sl:LinkedList;
56 //private var _sl:SLinkedList;
57 //private var _sl:SLL;
58}
59}
- 文章ID:1260
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/array-vector-as3ds-ds-dsforas/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。