go 新手:用 bufio的scan按行读取 约2.5G的fasta文件,发现读取得很慢,慢得不敢想象

0106WeiWeiDeng · · 3084 次点击
大文件全部读取到内存,一般是不合理的操作。 看逻辑,基本上读取文件,找到某种匹配,就记录到某处。并没有需要针对已经找到的数据做互相关联计算。 所以,建议的做法,不需要把所有找到的结果都缓存在某个数组,而是,分段式操作,完成一个段落,直接输入(放文件,打屏都可以)。 如果后续还是发现慢,可以用一个goroutine读文件块,分成多个互相不干扰的块,丢给一个worker池去处理,会更加快。
#9
更多评论
我不知道是bufio的scan慢,还是字符串string的+=操作慢,或者是其他原因
#1
请大神给一些优化的建议
#2