基准测试

This commit is contained in:
hahwu 2025-01-17 16:50:38 +08:00
parent c04d345970
commit 156b9da2d3
2 changed files with 78 additions and 0 deletions

View File

@ -0,0 +1,71 @@
package main
import (
"fmt"
"runtime"
"server/game"
"server/game/mod/msg"
"testing"
"time"
)
// 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)
// }
// }
// }
func BenchmarkGame(b *testing.B) {
runtime.GOMAXPROCS(2)
fmt.Print("BenchmarkGame")
f := "wmz00%d"
for i := 0; i < 10000; i++ {
go func() {
UserName := fmt.Sprintf(f, i)
p1 := new(game.Player)
err := p1.InitPlayer(UserName)
if err != nil {
fmt.Println(err)
}
game.G_GameLogicPtr.SetPlayer(p1)
for {
time.Sleep(1 * time.Second)
game.Benchmark(p1)
}
}()
}
go func() {
time.Sleep(20 * time.Second)
game.G_GameLogicPtr.ChampshipMgrSend(&msg.Msg{
Type: msg.HANDLE_TYPE_CHAMPSHIP_GROUP,
})
}()
for {
time.Sleep(1 * time.Second)
printMemUsage()
}
}
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
}

View File

@ -825,3 +825,10 @@ func LoignBack(p *Player) {
}
BaseMod.LoginBack = true
}
func Benchmark(player *Player) {
ChampshipMod := player.PlayMod.getChampshipMod()
ChampshipMod.AddScore([]int{949, 941, 10})
player.HandleInChampshipRank()
player.HandleInUserRank()
}