#
🚀 PixelNebula 基准测试
[英文](README_EN.md) | 中文 ## 📊 简介 本目录包含了 PixelNebula 库的全面基准测试,用于测量和分析库在各种操作场景下的性能表现。这些测试可以帮助我们识别潜在的性能瓶颈,并指导后续的优化工作。
## 🧪 测试内容
基本生成
基本头像生成
样式和主题
样式和主题
动画效果
动画效果
缓存系统
缓存系统
并发性能
并发与内存
基准测试涵盖了 PixelNebula 的以下核心功能: ### 1. 🖼️ 基本头像生成 (`basic_benchmark_test.go`) - 普通头像生成 - 无环境头像生成 - 不同尺寸头像生成 - 相同ID多次生成 ### 2. 🎨 样式和主题 (`style_theme_benchmark_test.go`) - 不同样式的性能对比 - 不同主题的性能对比 - 自定义主题 - 样式与主题组合 ### 3. ✨ 动画效果 (`animation_benchmark_test.go`) - 旋转动画 - 渐变动画 - 淡入淡出动画 - 变换动画 - 颜色动画 - 多个动画组合 ### 4. 💾 缓存系统 (`cache_benchmark_test.go`) - 无缓存 vs. 默认缓存 - 不同缓存大小 - 缓存压缩效果 - 不同过期时间配置 ### 5. ⚡ 并发与内存使用 (`concurrency_memory_benchmark_test.go`) - 不同并发级别的性能 - 共享实例的并发性能 - 各种操作的内存占用分析
## 🚀 运行基准测试 ### 运行所有测试 ```bash cd benchmark go test -bench=. -benchmem ``` ### 运行特定测试组

🏃 基本测试

go test -bench=BenchmarkBasic -benchmem

💾 缓存测试

go test -bench=BenchmarkCache -benchmem

✨ 动画测试

go test -bench=BenchmarkAnimation -benchmem
### 高级配置

⚙️ 设置CPU计数

go test -bench=. -benchmem -cpu=1,2,4,8

⏱️ 设置迭代次数和时间

go test -bench=. -benchmem -count=5 -benchtime=5s

## 📈 测试结果分析 运行测试后,结果会以如下格式显示: ``` BenchmarkBasicAvatarGeneration-8 5000 234567 ns/op 12345 B/op 123 allocs/op ```
组成部分 描述
BenchmarkBasicAvatarGeneration-8 测试名称,8表示使用8个CPU
5000 测试运行的迭代次数
234567 ns/op 每次操作的平均耗时(纳秒)
12345 B/op 每次操作的平均内存分配(字节)
123 allocs/op 每次操作的平均内存分配次数

## 📝 添加基准测试 在添加新功能时,建议同时添加相应的基准测试: 1. **创建测试函数**:为特定功能创建新的测试函数,命名为 `BenchmarkXXX` 2. **重置计时器**:使用 `b.ResetTimer()` 在准备工作完成后重置计时器 3. **创建子测试**:使用 `b.Run()` 创建子测试以对比不同变量 4. **使用迭代计数**:使用 `b.N` 作为迭代次数以确保统计准确性

示例:

```go func BenchmarkMyFeature(b *testing.B) { // 准备代码 pn := pixelnebula.NewPixelNebula() // 在实际基准测试前重置计时器 b.ResetTimer() // 运行基准测试 for i := 0; i < b.N; i++ { // 要测试的代码 pn.MyFeature() } } ```

更多信息,请查看 PixelNebula 文档和示例。

© 2024 landaiqing