如何在Go中有效地处理大型数据阵列(超过10MiB)?

Yos*_*osi 2 buffer go

我正在处理从一台服务器下载文件并在操作将文件发送到另一台服务器后.

文件大小可以从1MB到200MB不等.

目前,我的代码非常简单,我使用的是http.Client和bytes.Buffer.
处理大文件(100MB到200MB)需要花费大量时间.

快速分析后,我发现大部分时间都是字节.(*Buffer).grow,
如何为16MB创建大缓冲区?

为了提高代码效率,我该怎么办?处理大型http请求的一般提示?

编辑

我将解释,正是我想要做的.我有couchdb文件(附件),我试图复制到另一个couchdb实例.couchdb文件大小可以从30MB到200MB,复制微小的(2-10MB)couchdb文件 - 真的很快.

但通过电线发送文件真的很慢.我目前正在尝试分析,并尝试使用@Evan回答来查看我的问题.

Eva*_*van 5

请查看以下说明bytes.NewBuffer:http://golang.org/pkg/bytes/#NewBuffer

听起来你可以创建一个16MB的字节切片并用它来初始化缓冲区.