improve write performance by

* buffering packets before sending them
* removing mutexes
This commit is contained in:
aler9
2021-12-08 17:46:56 +01:00
parent a1de5ffdf9
commit f3096ec102
20 changed files with 969 additions and 952 deletions

View File

@@ -2,6 +2,7 @@ package base
import (
"bufio"
"bytes"
"fmt"
"net/http"
"sort"
@@ -97,7 +98,7 @@ func (h *Header) read(rb *bufio.Reader) error {
return nil
}
func (h Header) write(wb *bufio.Writer) error {
func (h Header) write(bb *bytes.Buffer) {
// sort headers by key
// in order to obtain deterministic results
keys := make([]string, len(h))
@@ -108,17 +109,9 @@ func (h Header) write(wb *bufio.Writer) error {
for _, key := range keys {
for _, val := range h[key] {
_, err := wb.Write([]byte(key + ": " + val + "\r\n"))
if err != nil {
return err
}
bb.Write([]byte(key + ": " + val + "\r\n"))
}
}
_, err := wb.Write([]byte("\r\n"))
if err != nil {
return err
}
return nil
bb.Write([]byte("\r\n"))
}