Skip to content

Commit 5536e53

Browse files
committed
perf(serverHandler/log): prevent using bytes.Buffer to improve perf
1 parent 5655dab commit 5536e53

File tree

1 file changed

+27
-28
lines changed

1 file changed

+27
-28
lines changed

src/serverHandler/log.go

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package serverHandler
22

33
import (
4-
"bytes"
54
"net/http"
65
)
76

@@ -22,55 +21,55 @@ func (h *handler) logMutate(username, action, detail string, r *http.Request) {
2221
return
2322
}
2423

25-
buffer := bytes.NewBuffer(make([]byte, 0, LOG_BUF_SIZE))
24+
buf := make([]byte, 0, LOG_BUF_SIZE)
2625

27-
buffer.WriteString(r.RemoteAddr)
26+
buf = append(buf, []byte(r.RemoteAddr)...) // 9-47 bytes, mainly 21 bytes
2827
if len(username) > 0 {
29-
buffer.WriteString(" (")
30-
buffer.WriteString(username)
31-
buffer.WriteByte(')')
28+
buf = append(buf, []byte(" (")...) // 2 bytes
29+
buf = append(buf, []byte(username)...)
30+
buf = append(buf, ')') // 1 byte
3231
}
33-
buffer.WriteByte(' ')
34-
buffer.WriteString(action)
35-
buffer.WriteString(": ")
36-
buffer.WriteString(detail)
32+
buf = append(buf, ' ') // 1 byte
33+
buf = append(buf, []byte(action)...) // 5-6 bytes
34+
buf = append(buf, []byte(": ")...) // 2 bytes
35+
buf = append(buf, []byte(detail)...)
3736

38-
h.logger.LogAccess(buffer.Bytes())
37+
h.logger.LogAccess(buf)
3938
}
4039

4140
func (h *handler) logUpload(username, filename, fsPath string, r *http.Request) {
4241
if !h.logger.CanLogAccess() {
4342
return
4443
}
4544

46-
buffer := bytes.NewBuffer(make([]byte, 0, LOG_BUF_SIZE))
45+
buf := make([]byte, 0, LOG_BUF_SIZE)
4746

48-
buffer.WriteString(r.RemoteAddr)
47+
buf = append(buf, []byte(r.RemoteAddr)...) // 9-47 bytes, mainly 21 bytes
4948
if len(username) > 0 {
50-
buffer.WriteString(" (")
51-
buffer.WriteString(username)
52-
buffer.WriteByte(')')
49+
buf = append(buf, []byte(" (")...) // 2 bytes
50+
buf = append(buf, []byte(username)...)
51+
buf = append(buf, ')') // 1 byte
5352
}
54-
buffer.WriteString(" upload: ")
55-
buffer.WriteString(filename)
56-
buffer.WriteString(" -> ")
57-
buffer.WriteString(fsPath)
53+
buf = append(buf, []byte(" upload: ")...) // 9 bytes
54+
buf = append(buf, []byte(filename)...)
55+
buf = append(buf, []byte(" -> ")...) // 4 bytes
56+
buf = append(buf, []byte(fsPath)...)
5857

59-
h.logger.LogAccess(buffer.Bytes())
58+
h.logger.LogAccess(buf)
6059
}
6160

6261
func (h *handler) logArchive(filename, relPath string, r *http.Request) {
6362
if !h.logger.CanLogAccess() {
6463
return
6564
}
6665

67-
buffer := bytes.NewBuffer(make([]byte, 0, LOG_BUF_SIZE))
66+
buf := make([]byte, 0, LOG_BUF_SIZE)
6867

69-
buffer.WriteString(r.RemoteAddr)
70-
buffer.WriteString(" archive file: \"")
71-
buffer.WriteString(filename)
72-
buffer.WriteString("\" <- ")
73-
buffer.WriteString(relPath)
68+
buf = append(buf, []byte(r.RemoteAddr)...) // 9-47 bytes, mainly 21 bytes
69+
buf = append(buf, []byte(" archive file: ")...) // 15 bytes
70+
buf = append(buf, []byte(filename)...)
71+
buf = append(buf, []byte(" <- ")...) // 4 bytes
72+
buf = append(buf, []byte(relPath)...)
7473

75-
h.logger.LogAccess(buffer.Bytes())
74+
h.logger.LogAccess(buf)
7675
}

0 commit comments

Comments
 (0)