1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-04 11:07:40 +08:00

all: optimize

detected by go-perfguard
This commit is contained in:
wdvxdr 2022-03-27 22:42:21 +08:00
parent 868828f3da
commit 9422ce4751
No known key found for this signature in database
GPG Key ID: 703F8C071DE7A1B6
5 changed files with 14 additions and 11 deletions

View File

@ -6,7 +6,6 @@ import (
"compress/zlib" "compress/zlib"
binary2 "encoding/binary" binary2 "encoding/binary"
"encoding/hex" "encoding/hex"
"io"
"net" "net"
"github.com/Mrs4s/MiraiGo/utils" "github.com/Mrs4s/MiraiGo/utils"
@ -34,7 +33,7 @@ func ZlibUncompress(src []byte) []byte {
var out bytes.Buffer var out bytes.Buffer
r, _ := zlib.NewReader(b) r, _ := zlib.NewReader(b)
defer r.Close() defer r.Close()
io.Copy(&out, r) _, _ = out.ReadFrom(r)
return out.Bytes() return out.Bytes()
} }
@ -42,7 +41,8 @@ func ZlibCompress(data []byte) []byte {
zw := acquireZlibWriter() zw := acquireZlibWriter()
_, _ = zw.w.Write(data) _, _ = zw.w.Write(data)
_ = zw.w.Close() _ = zw.w.Close()
ret := append([]byte(nil), zw.buf.Bytes()...) ret := make([]byte, len(zw.buf.Bytes()))
copy(ret, zw.buf.Bytes())
releaseZlibWriter(zw) releaseZlibWriter(zw)
return ret return ret
} }
@ -51,7 +51,8 @@ func GZipCompress(data []byte) []byte {
gw := AcquireGzipWriter() gw := AcquireGzipWriter()
_, _ = gw.Write(data) _, _ = gw.Write(data)
_ = gw.Close() _ = gw.Close()
ret := append([]byte(nil), gw.buf.Bytes()...) ret := make([]byte, len(gw.buf.Bytes()))
copy(ret, gw.buf.Bytes())
ReleaseGzipWriter(gw) ReleaseGzipWriter(gw)
return ret return ret
} }
@ -61,7 +62,7 @@ func GZipUncompress(src []byte) []byte {
var out bytes.Buffer var out bytes.Buffer
r, _ := gzip.NewReader(b) r, _ := gzip.NewReader(b)
defer r.Close() defer r.Close()
_, _ = io.Copy(&out, r) _, _ = out.ReadFrom(r)
return out.Bytes() return out.Bytes()
} }

View File

@ -12,7 +12,8 @@ type Writer bytes.Buffer
func NewWriterF(f func(writer *Writer)) []byte { func NewWriterF(f func(writer *Writer)) []byte {
w := SelectWriter() w := SelectWriter()
f(w) f(w)
b := append([]byte(nil), w.Bytes()...) b := make([]byte, len(w.Bytes()))
copy(b, w.Bytes())
w.put() w.put()
return b return b
} }

View File

@ -84,7 +84,8 @@ func (c *Codec) Marshal(m *Message) []byte {
} }
w.WriteByte(0x03) w.WriteByte(0x03)
buf := append([]byte(nil), w.Bytes()...) buf := make([]byte, len(w.Bytes()))
copy(buf, w.Bytes())
goBinary.BigEndian.PutUint16(buf[1:3], uint16(len(buf))) goBinary.BigEndian.PutUint16(buf[1:3], uint16(len(buf)))
return buf return buf
} }

View File

@ -1,9 +1,9 @@
package message package message
import ( import (
"bytes"
"crypto/md5" "crypto/md5"
"regexp" "regexp"
"strings"
"sync" "sync"
"github.com/Mrs4s/MiraiGo/binary" "github.com/Mrs4s/MiraiGo/binary"
@ -79,7 +79,7 @@ func (f *ForwardMessage) AddNode(node *ForwardNode) *ForwardMessage {
func (f *ForwardMessage) Length() int { return len(f.Nodes) } func (f *ForwardMessage) Length() int { return len(f.Nodes) }
func (f *ForwardMessage) Brief() string { func (f *ForwardMessage) Brief() string {
var brief bytes.Buffer var brief strings.Builder
for _, n := range f.Nodes { for _, n := range f.Nodes {
brief.WriteString(ToReadableString(n.Message)) brief.WriteString(ToReadableString(n.Message))
if brief.Len() >= 27 { if brief.Len() >= 27 {
@ -90,7 +90,7 @@ func (f *ForwardMessage) Brief() string {
} }
func (f *ForwardMessage) Preview() string { func (f *ForwardMessage) Preview() string {
var pv bytes.Buffer var pv strings.Builder
for i, node := range f.Nodes { for i, node := range f.Nodes {
if i >= 4 { if i >= 4 {
break break

View File

@ -20,7 +20,7 @@ func ComputeMd5AndLength(r io.Reader) ([]byte, int64) {
func (r *multiReadSeeker) Read(p []byte) (int, error) { func (r *multiReadSeeker) Read(p []byte) (int, error) {
if r.multiReader == nil { if r.multiReader == nil {
var readers []io.Reader readers := make([]io.Reader, len(r.readers))
for i := range r.readers { for i := range r.readers {
_, _ = r.readers[i].Seek(0, io.SeekStart) _, _ = r.readers[i].Seek(0, io.SeekStart)
readers = append(readers, r.readers[i]) readers = append(readers, r.readers[i])