TStringList性能调优
来源:互联网 发布:个人可以在淘宝开店吗 编辑:程序博客网 时间:2024/06/05 12:54
改进目标是针对IndexOf效率,主要有两面:
1、设置Sorted属性
当Sorted= true,那么IndexOf则会调用Find二分查找法;当Sorted=False,则会从头比到尾,直至找到。
显然,Sorted = True可以取得较好的性能。
2、改进Find方法
IndexOf依赖于Find,Find调用API:AnsiCompareStr。这个API会考虑本地化语言因素,以及用户态和系统态的频繁切换,较耗CPU的。
typeTStringListEnhanced = class(TStringList)public function Find(const S: string; var Index: Integer): Boolean; override; end;function TStringListEnhanced.Find(const S: string; var Index: Integer): Boolean;var L, H, I, C: Integer;begin Result := False; L := 0; H := Count - 1; while L <= H do begin I := (L + H) shr 1; C := CompareStr(Get(I), S); if C < 0 then L := I + 1 else begin H := I - 1; if C = 0 then begin Result := True; if Duplicates <> dupAccept then L := I; end; end; end; Index := L;end;
- TStringList性能调优
- Tstringlist
- TStringList .
- TStringList
- TStringList
- 谁说Delphi没有哈希?--Delphi中,TStringList和THashedStringList的性能对比
- 谁说Delphi没有哈希?--Delphi中,TStringList和THashedStringList的性能对比
- 谁说Delphi没有哈希?--Delphi中,TStringList和THashedStringList的性能对比
- Indy + TStringList
- TStringList 使用方法
- Delphi ------TStringList
- Tstringlist 应用
- 【转】谁说Delphi没有哈希?--Delphi中,TStringList和THashedStringList的性能对比
- 改良版TStringList类
- TStringList的用法
- TStringList的用法
- Delphi TStringList的用法
- TStringList 常用操作
- 语句COMMIT WORK ROLLBACK WORK
- query取得iframe中元素的几种方法
- CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
- jQuery乱谈(二)
- linux 文件系统制作脚本
- TStringList性能调优
- 2013.4.25 四月份月赛解题报告
- SCOI2010——传送带(三分法)
- form表单提交后无法接收到数据
- 类成员变量初始化专题
- 怎样评估你需要的Asterisk系统
- SSH框架总结(框架分析+环境搭建+实例源码下载)
- Ubuntu下安装apk
- 【数据结构】B-/B+树的分析