至于为什么 gin 可以,因为它根本没做这个优化
16 年有人发过 pr (
https://github.com/gin-gonic/gin/pull/638),但不知道什么原因关闭了,一直到今天都没实现这个优化 ```go
// gin
8 0x000000000054620e in net.(*TCPConn).Write
at <autogenerated>:1
9 0x00000000005de533 in net/http.checkConnErrorWriter.Write
at d:/go/src/net/http/server.go:3532
10 0x0000000000592e75 in bufio.(*Writer).Write
at d:/go/src/bufio/bufio.go:639
11 0x00000000005d2695 in net/http.(*chunkWriter).Write
at d:/go/src/net/http/server.go:383
12 0x0000000000592e75 in bufio.(*Writer).Write
at d:/go/src/bufio/bufio.go:639
13 0x00000000005d819e in net/http.(*response).write
at d:/go/src/net/http/server.go:1592
14 0x00000000005d7ed0 in net/http.(*response).Write
at d:/go/src/net/http/server.go:1550
15 0x00000000006f3078 in
github.com/gin-gonic/gin.(*responseWriter).Write at c:/users/eddisonwang/go/pkg/mod/
github.com/gin-gonic/gin@v1.8.1/response_writer.go:7816 0x0000000000452444 in io.copyBuffer
at d:/go/src/io/io.go:425
17 0x00000000004520fa in io.Copy
at d:/go/src/io/io.go:382
18 0x00000000004520fa in io.CopyN
at d:/go/src/io/io.go:358
19 0x00000000005b2ba5 in net/http.serveContent
at d:/go/src/net/http/fs.go:337
20 0x00000000005b4af5 in net/http.serveFile
at d:/go/src/net/http/fs.go:664
// std http
6 0x0000000000f0ed5c in net.sendFile
at d:/go/src/net/sendfile_windows.go:37
7 0x0000000000f1196e in net.(*TCPConn).readFrom
at d:/go/src/net/tcpsock_posix.go:52
8 0x0000000000f10f76 in net.(*TCPConn).ReadFrom
at d:/go/src/net/tcpsock.go:104
9 0x0000000000fa08d9 in net/http.(*response).ReadFrom
at d:/go/src/net/http/server.go:597
10 0x0000000000e65a8b in io.copyBuffer
at d:/go/src/io/io.go:409
11 0x0000000000e657fa in io.Copy
at d:/go/src/io/io.go:382
12 0x0000000000e657fa in io.CopyN
at d:/go/src/io/io.go:358
13 0x0000000000f80465 in net/http.serveContent
at d:/go/src/net/http/fs.go:337
14 0x0000000000f823b5 in net/http.serveFile
at d:/go/src/net/http/fs.go:664
```