备份的序列化对象使用内存池
This commit is contained in:
parent
e0b255a859
commit
d190c2edf8
@ -82,6 +82,17 @@ type PlayerMsg struct {
|
||||
B []byte
|
||||
}
|
||||
|
||||
var playerDataPool = sync.Pool{
|
||||
New: func() interface{} {
|
||||
return &PlayerBackUp{}
|
||||
},
|
||||
}
|
||||
|
||||
func (pd *PlayerBackUp) Reset() {
|
||||
pd.Data = msg.ResPlayerBaseInfo{}
|
||||
pd.PlayMod = nil
|
||||
}
|
||||
|
||||
func (p *Player) Stop() {
|
||||
p.wg.Wait()
|
||||
p.signalDispatcherStop()
|
||||
@ -201,10 +212,10 @@ func (p *Player) ProcessTrigger() {
|
||||
|
||||
// 接口请求之前备份数据
|
||||
func (p *Player) BackUp() *PlayerBackUp {
|
||||
BackUp := PlayerBackUp{}
|
||||
p.PlayMod.BackUp(&BackUp)
|
||||
BackUp := playerDataPool.Get().(*PlayerBackUp)
|
||||
p.PlayMod.BackUp(BackUp)
|
||||
BackUp.Data = p.GetPlayerBaseMod().BackUp()
|
||||
return &BackUp
|
||||
return BackUp
|
||||
}
|
||||
|
||||
// 接口发生错误时 还原数据
|
||||
@ -212,6 +223,8 @@ func (p *Player) Recover(backUp *PlayerBackUp) {
|
||||
// p.GetPlayerBaseMod().Data = backUp.Data
|
||||
p.PlayMod.Recover(backUp)
|
||||
p.Msg = make([]PlayerMsg, 0)
|
||||
backUp.Reset()
|
||||
playerDataPool.Put(backUp)
|
||||
}
|
||||
|
||||
func (p *Player) InitPlayer(UserName string) error {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user