一个字符串的替换问题!在线急等。。。。。(100分)

  • 主题发起人 主题发起人 wyjch78
  • 开始时间 开始时间
数据量大时不要用delphi自带的字符串替换函数,因为其存在着大量的内存分配销毁等操作,数据量一大,内存碎片一旦产生,其速度急剧下降.
建议试试 http://www.delphibbs.com/delphibbs/dispq.asp?lid=283208
这里这个单元里面的字符串替换函数.
或者也可以找一下 faststring 单元,网上有的.
字符串替换的效率,只有在数据量大或者操作非常频繁的时候才会体现出来.
在极端情况下,速度可能差成百上千倍的.

有时候你可能意识不到,就连 delphi自带的 pos函数,也会成为性能瓶颈,我遇到过的,上千行字符串处理,原先要1-2分钟,替换掉pos函数后只要3秒钟.
因为pos函数存在字符串拷贝操作.而且编译器还会在此操作上隐含插入try finally等耗cpu的代码.
 
其实我这个问题主要还是个循环以后导致的效率问题。原来我以为Locate有个参数可选的。所以我试着把参数写成了loPartialKey:模糊匹配。可是发现效果和我用[]一模一样的。不知道是什么意思。虽然问题没有解决,感谢大家。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部