U
ufo!
Unregistered / Unconfirmed
GUEST, unregistred user!
数据量大时不要用delphi自带的字符串替换函数,因为其存在着大量的内存分配销毁等操作,数据量一大,内存碎片一旦产生,其速度急剧下降.
建议试试 http://www.delphibbs.com/delphibbs/dispq.asp?lid=283208
这里这个单元里面的字符串替换函数.
或者也可以找一下 faststring 单元,网上有的.
字符串替换的效率,只有在数据量大或者操作非常频繁的时候才会体现出来.
在极端情况下,速度可能差成百上千倍的.
有时候你可能意识不到,就连 delphi自带的 pos函数,也会成为性能瓶颈,我遇到过的,上千行字符串处理,原先要1-2分钟,替换掉pos函数后只要3秒钟.
因为pos函数存在字符串拷贝操作.而且编译器还会在此操作上隐含插入try finally等耗cpu的代码.
建议试试 http://www.delphibbs.com/delphibbs/dispq.asp?lid=283208
这里这个单元里面的字符串替换函数.
或者也可以找一下 faststring 单元,网上有的.
字符串替换的效率,只有在数据量大或者操作非常频繁的时候才会体现出来.
在极端情况下,速度可能差成百上千倍的.
有时候你可能意识不到,就连 delphi自带的 pos函数,也会成为性能瓶颈,我遇到过的,上千行字符串处理,原先要1-2分钟,替换掉pos函数后只要3秒钟.
因为pos函数存在字符串拷贝操作.而且编译器还会在此操作上隐含插入try finally等耗cpu的代码.