CnPack Forum » CnVCL 组件包 » 关于CnHashmap和CnHashTable性能问题?


2009-6-16 10:33 myplxdm
关于CnHashmap和CnHashTable性能问题?

我用TCnStrToPtrHashMap和TCnHashTableBig测试了一下,代码如下:
var
  time,i:Cardinal;
  hash:TCnStrToPtrHashMap;
begin
  hash := TCnStrToPtrHashMap.Create();
  time := GetTickCount;
  for i := 0 to 9000000 do
  begin
    hash.Add(IntToStr(i),TObject(i));
  end;
  btn1.Caption := IntToStr(GetTickCount - time);

var
  time,i:Cardinal;
  hash:TCnHashTableBig;
begin
  hash := TCnHashTableBig.Create(9000000 ); //如果我这个初始化9000000 就提示内存超出,小一点的数值是可以,不过好像最大就1百多万
  time := GetTickCount;
  for i := 0 to 9000000 do
  begin
    hash.put(IntToStr(i),TObject(i));
  end;
  btn1.Caption := IntToStr(GetTickCount - time);

以上的性能很差,不知道是不是我测试有问题,我用THashedStringList创建9000000 要70XX毫秒左右,但用上面的两个过了很久(20秒左右)都还没有执行完成,所以我中断了运行

页: [1]


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.