🎉 Initial commit
This commit is contained in:
88
benchmark/basic_benchmark_test.go
Normal file
88
benchmark/basic_benchmark_test.go
Normal 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)
|
||||
}
|
Reference in New Issue
Block a user