IFilter Reader稳定版本发布

Posted on 2008-12-09 17:31 A.Z 阅读(...) 评论(...) 编辑 收藏

续之前的共同学习,IFilter Lib预览版首发,请各位兄弟们支持,今天下午打包完成了稳定版本。

其中包含了所有的源码,测试工程,项目文件为visual studio 2008格式,如果不是vsts版本,可以手动在solution下删除不能识别的测试工程。

 

改进如下:

1. 在御览版的基础上修复了一些BUG.

2. 完整的支持各种可能的输入

3. 修改了部分逻辑,现在输出十分的稳定 (注:可以把buffer设成最小值试一下:P

 

 

本来打算说一堆废话,现在一看时间已经5点过5分了,所以CUT掉一些说明,下面只拣重点地感悟感叹一下:

实现一个TextReader或者说实现一个Reader模型需要做一个状态转化,而这个状态转化关系到Reader的状态以及内部reader的状态,如果把握不当,问题会变得十分的复杂

一个Reader内部需要一个Buffer来支持可预读和缓冲从内部reader获取的数据,buffer的个数,大小和读取逻辑直接影响到Reader的性能。

当内部的reader的读出数据大小是不可控时,要留意Buffer的溢出,这个很难用模式去套用,需要实际问题实际分析,把握住各种可能。

 

 

你会在FilterReader中看到始终保持一个固定大小的buffer,整个类中没有其他短生命期的临时buffer。这样可以最大的优化读取性能,当在多任务高负荷操作下可以保持较小的内存占用。

测试项目中包含了压力测试,你可以增加test case,验证可靠性。

最后不得不说一下 adobe的filter十分的另类,载入时间也比其他要慢出许多。而且当不经过COM初始化时多线程访问时会出现内部错误,最后unload dll时发生异常。所以用.net自己复杂的COM加载机制代替了原先被我看好的进程内加载。

 

就此打住,最后放出下载地址:

 Eclipse.IndexingService_stableV2.zip

 

为了方便没有安装2008IDE的朋友,放出二进制版本:

Eclipse.IndexingService_stableV2(binary).zip

 

 

 

有你的支持,才会有它更好的发展,下载的朋友,请把使用情况反馈给我(回复,留言,邮件都可以),先谢过。