李亮1975重庆
语料库快乐军政委
《语料编程VBA的10条高速路》
【主理据】在数据结构与算法的常规因素之外,执行速度是磁盘读写、网络读写、数据运算、界面加载这四大方面决定的。网络速度一般远低于磁盘读写,只能达到10MB左右,所以,提速潜力不大;界面加载是指树形控件或文本框控件之类的界面元素对大容量数据的加载和响应,其实各种编程工具开发的界面控件若加载大量数据都容易变得响应迟缓;磁盘读写越底层越快速,但需要更底层的编程技能。
【十条路】
一、调用findstr或grep之类的高速小工具来实现磁盘读写的极致速度;
二、采用SQL数据库(例如DAO、ADO、SQLite)来克服磁盘读写的瓶颈;
三、采用NOSQL数据库(例如MongoDB、Redis、Membase)来克服磁盘读写的瓶颈;
四、采用针对语言信息计算的Sphinx数据库;
五、采用native XML database系列的数据库(例如Zorba、BaseX、Sedna);
六、尽量避免采用工作区加载的方式来呈现结果,而是采用磁盘读写;
七、尽量避免采用工作区加载的方式来呈现自动化进度,而是采用磁盘读写;
八、尽量避免采用Internet Explorer的模拟自动化,而是采用WinHTTP协议;
九、放弃常规磁盘读写方式,调用Windows API,甚至native API(例如NtOpenFile和NtReadFile函数);
十、如果面对超过200MB的XML文件,则适当时候采用SAX,而不是只采用XML DOM;