diff --git a/src/server/game/player_mod.go b/src/server/game/player_mod.go index ad73eff0..87d5b647 100644 --- a/src/server/game/player_mod.go +++ b/src/server/game/player_mod.go @@ -262,14 +262,17 @@ func (p *PlayerMod) ClearData(player *Player) { } func (p *PlayerMod) BackUp(B *PlayerBackUp) { - var buf bytes.Buffer - encode := gob.NewEncoder(&buf) + // 预分配 buffer 容量,避免动态扩容,根据实际数据大小可调整 + now := time.Now() + buf := bytes.NewBuffer(make([]byte, 0, 128*1024)) + encode := gob.NewEncoder(buf) err := encode.Encode(p.mod_list) if err != nil { log.Debug("Backup, playmod error %v", err) return } B.PlayMod = buf.Bytes() + log.Debug("backup player, cost time %v", time.Since(now)) } func (p *PlayerMod) Recover(B *PlayerBackUp) {