114 lines
2.4 KiB
Go
114 lines
2.4 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"runtime"
|
|
"server/game"
|
|
"server/game/mod/msg"
|
|
"testing"
|
|
)
|
|
|
|
// func TestBenchInit(t *testing.T) {
|
|
// f := "wmz00%d"
|
|
// for i := 0; i < 10000; i++ {
|
|
// UserName := fmt.Sprintf(f, i)
|
|
// game.G_GameLogicPtr.Db_AccountInfo.UserName = UserName
|
|
// game.G_GameLogicPtr.Db_AccountInfo.UserPassword = "123456"
|
|
// if game.G_GameLogicPtr.NewAccountInsertDataToDB() {
|
|
// fmt.Printf("UserName:%s\n init success", UserName)
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
/*
|
|
*
|
|
cluster 消息处理基准测试
|
|
|
|
36716 34961 ns/op 1690 B/op 38 allocs/op
|
|
*/
|
|
func BenchmarkClusterMsg(b *testing.B) {
|
|
game.ClusterMgrInit()
|
|
runtime.GOMAXPROCS(8)
|
|
game.G_getGameLogic()
|
|
for i := 0; i < b.N; i++ {
|
|
m := &msg.Msg{
|
|
HandleType: msg.HANDLE_MOD_PLAYER_LOGIN,
|
|
Extra: 0,
|
|
}
|
|
game.MessageHandle(m)
|
|
}
|
|
}
|
|
|
|
func printMemUsage() {
|
|
var m runtime.MemStats
|
|
runtime.ReadMemStats(&m)
|
|
// 输出内存使用情况
|
|
fmt.Printf("Alloc = %v MiB", bToMb(m.Alloc))
|
|
fmt.Printf("\tTotalAlloc = %v MiB", bToMb(m.TotalAlloc))
|
|
fmt.Printf("\tSys = %v MiB", bToMb(m.Sys))
|
|
fmt.Printf("\tNumGC = %v\n", m.NumGC)
|
|
var playerCount int
|
|
game.G_GameLogicPtr.M_Players.Range(func(key, value interface{}) bool {
|
|
playerCount++
|
|
return true
|
|
})
|
|
fmt.Printf("\tPlayerNum = %v\n", playerCount)
|
|
}
|
|
|
|
func bToMb(b uint64) uint64 {
|
|
return b / 1024 / 1024
|
|
}
|
|
|
|
func BenchmarkChampionshipGroup(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
game.G_GameLogicPtr.CreateChampshipMgr()
|
|
game.G_GameLogicPtr.ChampshipMgr.Debug()
|
|
}
|
|
}
|
|
|
|
func BenchmarkPlayerInit(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
p := new(game.Player)
|
|
p.InitPlayer("3625212")
|
|
p.LoginBackData()
|
|
}
|
|
}
|
|
|
|
func BenchmarkPlayerBackup(b *testing.B) {
|
|
p := new(game.Player)
|
|
p.InitPlayer("3625212")
|
|
for i := 0; i < b.N; i++ {
|
|
p.BackUp()
|
|
}
|
|
}
|
|
|
|
func BenchmarkPlayerRecover(b *testing.B) {
|
|
p := new(game.Player)
|
|
p.InitPlayer("3625212")
|
|
backup := p.BackUp()
|
|
for i := 0; i < b.N; i++ {
|
|
p.Recover(backup)
|
|
}
|
|
}
|
|
|
|
func BenchmarkPlayerHandleMsg(b *testing.B) {
|
|
p := new(game.Player)
|
|
p.InitPlayer("3625212")
|
|
list := make([]*msg.Msg, 0, 1000)
|
|
for i := 0; i < 1000; i++ {
|
|
m := &msg.Msg{
|
|
HandleType: msg.HANDLE_MOD_PLAYER_LOGIN,
|
|
Type: msg.HANDLE_TYPE_APPLY,
|
|
From: 100001,
|
|
To: i + 100002,
|
|
Extra: 0,
|
|
}
|
|
list = append(list, m)
|
|
}
|
|
for i := 0; i < b.N; i++ {
|
|
for _, m := range list {
|
|
p.HandleMsg(m)
|
|
}
|
|
}
|
|
}
|