所以我有一个简单的net/http网络服务器.它所做的只是提供100MB的随机字节,我打算用它来进行网络速度测试.我对100mb端点的处理程序非常简单(粘贴在下面).代码工作正常,我得到我的随机字节文件,问题是当我运行这个并且有人下载这些100兆字节时,该程序的CPU最高可达150%并保持在那里直到此处理程序完成运行.我在这里做错了吗?我该怎么做才能提高这个处理程序的性能?
func downloadHandler(w http.ResponseWriter, r *http.Request) {
str := RandStringBytes(8192); //generates 8192 bytes of randomness
sz := 1000*1000*100; //100Megabytes
iter := sz/len(str)+1;
w.Header().Set("Content-Type", "application/octet-stream")
w.Header().Set("Content-Length", strconv.Itoa( sz ))
for i := 0; i < iter ; i++ {
fmt.Fprintf(w, str )
}
}
Run Code Online (Sandbox Code Playgroud)