🎉 Initial commit

This commit is contained in:
2025-03-19 21:10:19 +08:00
commit 86c8755f79
70 changed files with 6915 additions and 0 deletions

View File

@@ -0,0 +1,88 @@
package benchmark
import (
"strconv"
"testing"
"github.com/landaiqing/go-pixelnebula"
"github.com/landaiqing/go-pixelnebula/style"
)
// BenchmarkBasicAvatarGeneration 测试基本头像生成性能
func BenchmarkBasicAvatarGeneration(b *testing.B) {
// 重置计时器
b.ResetTimer()
for i := 0; i < b.N; i++ {
pn := pixelnebula.NewPixelNebula()
pn.WithStyle(style.GirlStyle)
pn.WithSize(231, 231)
// 生成SVG
_, err := pn.Generate("benchmark-id", false).ToSVG()
if err != nil {
b.Fatal(err)
}
}
}
// BenchmarkAvatarWithNoEnvironment 测试无环境头像生成性能
func BenchmarkAvatarWithNoEnvironment(b *testing.B) {
// 重置计时器
b.ResetTimer()
for i := 0; i < b.N; i++ {
pn := pixelnebula.NewPixelNebula()
pn.WithStyle(style.GirlStyle)
pn.WithSize(231, 231)
// 生成无环境SVG
_, err := pn.Generate("benchmark-id", true).ToSVG()
if err != nil {
b.Fatal(err)
}
}
}
// BenchmarkDifferentSizes 测试不同大小头像生成性能
func BenchmarkDifferentSizes(b *testing.B) {
sizes := []int{100, 200, 400, 800}
for _, size := range sizes {
b.Run("Size_"+Itoa(size), func(b *testing.B) {
b.ResetTimer()
for i := 0; i < b.N; i++ {
pn := pixelnebula.NewPixelNebula()
pn.WithStyle(style.GirlStyle)
pn.WithSize(size, size)
_, err := pn.Generate("benchmark-size-"+Itoa(size), false).ToSVG()
if err != nil {
b.Fatal(err)
}
}
})
}
}
// BenchmarkIDReuse 测试多次使用相同ID生成头像的性能不使用缓存
func BenchmarkIDReuse(b *testing.B) {
pn := pixelnebula.NewPixelNebula()
pn.WithStyle(style.GirlStyle)
pn.WithSize(231, 231)
b.ResetTimer()
for i := 0; i < b.N; i++ {
_, err := pn.Generate("fixed-benchmark-id", false).ToSVG()
if err != nil {
b.Fatal(err)
}
}
}
// Itoa 简单的整数转字符串函数
func Itoa(n int) string {
return strconv.Itoa(n)
}