1. 首页
  2. 主题
  3. Go性能

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

0106WeiWeiDeng · · 3635 次点击
我是一个GO新手,以前是用C/C++的(非科班)。前段时间,听说GO语言写代码效率与Python一样快,而且执行效率与C差不多,而且goroutine 比thread 更加轻量,更加灵活,并发性能更好,就花了一个星期,粗略地看了一遍 The GO Programming Language 这本书,然后就用GO重写以前的C/C++代码作为练手,就发现bufio的scan按行读取很慢,不知道是什么原因,还有就是我打算先将文件读到内存中,然后用goroutines做一些并行(解开for循环),发现文件都没有读完,goroutines就产生了。代码如下(不会用markdown,所以就截图了,红色方框处就是读取文件的代码): ![无标题.jpg](https://static.studygolang.com/190114/44415e72e1320dabb8cfd4eced513100.jpg)
我不知道是bufio的scan慢,还是字符串string的+=操作慢,或者是其他原因
#1
更多评论
请大神给一些优化的建议
#2
string是不可改变的,+=操作是重新分配内存,改成[]byte,或者stringbuilder试试
#3

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中