Board logo

Subject: 关于CnHashmap和CnHashTable性能问题? [Print This Page]

Author: myplxdm    Time: 2009-6-16 10:33     Subject: 关于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秒左右)都还没有执行完成,所以我中断了运行




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0