VB快速查找大型文件中包含的字符串

来源:互联网 发布:三星s4软件下载 编辑:程序博客网 时间:2024/05/20 17:59

    关于查找大型文件中包含的字符串,一般都把文件内容读入到内存,然后在内存里进行比较,却不知这种办法有一个致命的弱点,那就是由于大量的内存申请和释放导致的内存颠簸,会使系统性能下降,严重影响了查找的速度。特别是在递归中对多个文件进行查找时,这个问题会更加突出,有时甚至会导致VB程序挂掉。为避免这种情况,同时加快大型文件中字符串的查找速度,俺基于内存影射文件和VB模拟指针技术,编写了一个通用字符串查找函数。

    首先,先看一个普通的查找函数:

    用一个400K的文本进行测试,测试次数为20次,测试代码如下:

    根据测试结果,最大耗时为2050ms,最小耗时为890ms,平均在950ms左右。

 

    然后,我看再看一下基于内存影射和模拟指针的查找函数,代码如下:

    这个函数明显比上一个函数复杂得到,按理说,它运行速度肯定相应的要慢一些,咱们先不下定论,还是经过测试后再说吧,测试代码如下:

    调用代码如下:

    使用了同一个文本文件,同样测试了20次,嘿,第二个函数最大耗时为17ms,最小耗时为0ms,平均不超过1ms,这进一步验证了我的设计初衷。

    如果你有更好的思路和建议,恳请告诉俺,俺在此表示感谢了!