vector & array
private static const NUM_LOOPS:int = 15;
public function VectorTest():void
{
var vector:Vector.<int> = new Vector.<int>(1000000);
var array:Array = new Array(1000000);
var sTime:Number;
sTime = getTimer();
loopArray(array);
trace("Loop Array Avg (1) : " + ((getTimer() - sTime)));
sTime = getTimer();
loopVector(vector);
trace("Loop Vector Avg (1) : " + ((getTimer() - sTime)));
sTime = getTimer();
loopArray(array, false);
trace("Loop Array Avg (2) : " + ((getTimer() - sTime)));
sTime = getTimer();
loopVector(vector, false);
trace("Loop Vector Avg (2) : " + ((getTimer() - sTime)));
sTime = getTimer();
loopArray(array);
trace("Loop Array Avg (3) : " + ((getTimer() - sTime)));
sTime = getTimer();
loopVector(vector);
trace("Loop Vector Avg (3) : " + ((getTimer() - sTime)));
}
private function loopArray(a:Array, isRead:Boolean = true):void
{
var len:Number = a.length;
var n:int;
for (var i:int = 0; i < NUM_LOOPS; i++)
{
for (var k:int = 0; k < len; k++)
{
if (isRead)
n = a[k];
else
a[k] = 100;
}
}
}
private function loopVector(v:Vector.<int>, isRead:Boolean = true):void
{
var len:Number = v.length;
var n:int;
for (var i:int = 0; i < NUM_LOOPS; i++)
{
for (var k:int = 0; k < len; k++)
{
if (isRead)
n = v[k];
else
v[k] = 100;
}
}
}
上面的测试代码,大致输出如下:
Loop Array Avg (1) : 3074
Loop Vector Avg (1) : 1749
Loop Array Avg (2) : 1835
Loop Vector Avg (2) : 1635
Loop Array Avg (3) : 1675
Loop Vector Avg (3) : 1649
但如果把Loop Array Avg (1) Loop Vector Avg (1) 注释掉,结果会输出如下:
Loop Array Avg (2) : 1881
Loop Vector Avg (2) : 1641
Loop Array Avg (3) : 1794
Loop Vector Avg (3) : 1704
可见,array只是慢在写操作上(因为要自动扩容),如果写操作不除非自动扩容时,写操作的速度和vector其实是差不多的。
至于读操作,array和vector其实是差不多的
vector & array的更多相关文章
- Codeforces Global Round 6D(VECTOR<ARRAY<INT,3> >)
一个人只要存在债务关系,那么他的债务可以和这整个债务关系网中任何人连边,和他当初借出或欠下的人没有关系.只需要记录他的债务值即可. #define HAVE_STRUCT_TIMESPEC #incl ...
- vector array and normal stanard array
array 数组的长度固定 vector 自由存储区(栈),动态长度 普通标准数组相对较不安全,不方便; array,vector对象成员函数支持数组越界检测,同时代价是效率问题: array,普通标 ...
- 侯捷STL学习(七)--深度探索vector&&array
layout: post title: 侯捷STL学习(七) date: 2017-06-13 tag: 侯捷STL --- 第十六节 深度探索vector vector源码剖析 vector内存2倍 ...
- Implementing a Dynamic Vector (Array) in C(使用c实现动态数组Vector)
An array (vector) is a common-place data type, used to hold and describe a collection of elements. T ...
- C/C++基础----string, vector, array
1 using声明 方便使用命名空间中的成员,不用每次xxx::yyy 头文件不应该包含using声明(不经意间包含了一些名字) 2 string 表3.1:初始化string对象的方式 string ...
- C++中的数组array和vector,lambda表达式,C字符串加操作,C++中新类型数组(数组缓存),多元数组,new缓冲
使用C++风格的数组.不须要管理内存. array要注意不要溢出,由于它是栈上开辟内存. array适用于不论什么类型 #include<iostream> #include< ...
- vector以及array和数组
//比较数组.vector.array #include <iostream> #include <vector> #include <array> #includ ...
- 【译】Rust中的array、vector和slice
原文链接:https://hashrust.com/blog/arrays-vectors-and-slices-in-rust/ 原文标题:Arrays, vectors and slices in ...
- Java数组与vector互转
Java数组与vector互转 /* Object[] object1 = null ; //数组定义 Vector<Object> object2;//Vector定义 object2 ...
随机推荐
- Ado.Net要知道的东西
什么是ADO.NET? ADO.NET就是一组类库,这组类库可以让我们通过程序的方式访问数据库,就像System.IO下的类用类操作文件一样,System.Data.这组类是用来操作数据库(不光是MS ...
- linux下文件编码的查看与修改
在Linux中查看文件编码可以通过vim编辑器来查看,在vim命令模式下输入如下命令即可: :set fileencoding //在vim中查看文件编码 如果你只是想查看其它编码格式的文件或者想解决 ...
- RadioButtonList js获取选择的项
<asp:RadioButtonList ID="RadioButtonList1" runat="server"> <asp:ListIte ...
- CyclicBarrier、CountDownLatch与Semaphore的小记
CyclicBarrier: 适合的业务场景,比如 1).,现有一大任务,需要得到全年的统计数据的,这个工作量是巨大的,那么可以将其分割为12个月的子任务,各个子任务相互独立,当所有子任务完成了,则就 ...
- vi / vim 删除以及翻页 其它命令
vim中翻页的命令 vim中翻页的命令 整页翻页 ctrl-f ctrl-b f就是forword b就是backward 翻半页 ctrl-d ctlr-u d=down u=up 滚一行 ctrl ...
- Jackson学习笔记-对象序列化
一.用ObjectMapper.readValue(jsonString, Student.class) , ObjectMapper.writeValueAsString(student) impo ...
- 实记JLink刷固件方法
最近J-Link调试程序,不知何故,USB报无法连接,试了别的电脑也是这样.文件存于“百度网盘/05.组装维修/4.单片机/1.JLink-ARM仿真器”下.所有的操作基于WIN7 32位系统. 1. ...
- ubuntu common
系统信息 # uname -a # 查看内核/操作系统/CPU信息 # cat /etc/issue # 查看操作系统版本 #cat /proc/version ...
- Linux内核通杀提权漏洞CVE-2016-5195 - 内核升级方法
如题,对于脏牛(Dirty COW)漏洞的修复方式已经在上篇文章中有介绍过如何验证,这里对如何升级内核给出修复建议. (注意:为避免不必要的生产风险的发生,请审核自己的实际环境而决定采用什么方法进行升 ...
- J2ee 巴巴网站制作(一)
用户模块图: