用C++相应的数据类型与AAuto的table类型比较。
AAuto代码:
import time.performance;
io.open()
//数组
tk=time.performance.tick()
a={}
for(i=1;1000000)
a[i]=i
io.print(time.performance.tick()-tk)
//哈希表
tk=time.performance.tick()
b={}
for(i=1;2000000;2)
b[i]=i
io.print(time.performance.tick()-tk)
//raw指针
cdata = raw.malloc( 10000000 )
tk=time.performance.tick()
for(i=1;1000000)
cdata[i] = i
io.print(time.performance.tick()-tk)
execute("pause")
io.close()
运行结果:数组106毫秒,哈希表272毫秒,raw指针61毫秒。C++代码:
#include<iostream>
#include<iostream>
#include<unordered_map>
using namespace std;
__declspec (naked) unsigned __int64 GetCpuCycle( void )
{
_asm
{
rdtsc
ret
}
}
const double CPUHZ=3e9;
double clockp()
{
return 1000*GetCpuCycle()/CPUHZ;
}
int main()
{
//数组
vector<int> a;
double t=clockp();
for(int i=1;i<1000000;++i)
a.push_back(i);
cout<<clockp()-t<<endl;
//哈希表
tr1::unordered_map<int,int> b;
t=clockp();
for(int i=1;i<2000000;i+=2)
b[i]=i;
cout<<clockp()-t<<endl;
//指针
int* c=new int[1000000];
t=clockp();
for(int i=0;i<1000000;++i)
c[i]=i;
cout<<clockp()-t<<endl;
delete[] c;
return 0;
}
运行结果:数组10毫秒,哈希表351毫秒,指针2毫秒。
由此可见,AAuto的哈希表实现的性能很好。
注:系统配置 WinXP SP3,intel core2 CPU Quad Q8300 2.50GHz,内存金士顿两条共4GB。