- 论坛徽章:
- 0
|
我在 lz 上加点哈!
1. 使用 一个 散列表 ,把 “fragment片段文件” 按顺序排列(此hashmap 当成 监听类表)。
如果 fragment 文件也过大,那就 linux sort 下 ,分批放到 内存的 散列中
2.建立多个 文件游标 类表(可认为简单的线程池,每个就文件打开一次) ,按 散列移动到下一个 key startnum 上开始记录。
如果有多fragment 重叠位置,这也是优化的地方,目前没想到什么好办法。
这样就应该块点了
方法当然也很多,比如
1.文件 每100个 char 都用 替换为 $(chr1.fa,25600){TTAA......}
然后合并 这 22 个文件 ,然后逻辑也水到渠成了,当然没此有改动就要合并,做成增量合并,一游标 块状(100 优化值可调) 读取从头到脚来此 ok ,速度上去了(复杂度也上了)
2. fragment 按文件 类型 linux sort 开个文件 来个游标 全部此文件问题解决关闭,下个文件接着
关于什么语言,我就 不掺和了
1.python 感觉对面向对象,图片处理,web服务,文件同步等还是不错的。
2.perl 对文本处理不错的(正则在这语言上登峰造极了,如果你的正则不好也大可不使用了)
[ 本帖最后由 liukaiyi 于 2009-2-16 10:23 编辑 ] |
|