Skip to content

v1.1.0 - High-Performance Decode Optimization

Choose a tag to compare

@icloudza icloudza released this 15 Aug 05:50
· 25 commits to main since this release

🚀 FxJSON v1.1.0 - 解码性能大幅优化

✨ 新增功能

🔥 高性能解码方法

  • DecodeStruct(data []byte, v any) error - 直接从字节解码,跳过Node创建开销
  • DecodeStructFast(data []byte, v any) error - 极速解码,性能关键场景首选

⚡ 内部优化

  • 全新的 decodeValueFast() 快速解码引擎
  • 零拷贝字符串提取优化
  • 预分配容量减少内存扩容
  • 优化的结构体字段映射缓存
  • 智能类型推断和快速路径处理

📊 性能提升

解码方法 性能提升 使用场景
node.Decode() 基准 需要Node功能时
DecodeStruct() ~1.0x 直接结构体解码
DecodeStructFast() ~1.1x 性能关键场景

🎯 与标准库对比

  • 简单解码:2.1x 速度提升
  • 复杂解码:1.25x 速度提升
  • 大数据解码:1.27x 速度提升

🔧 使用示例

// 方法1: 标准Node解码
node := fxjson.FromBytes(jsonData)
var user User
err := node.Decode(&user)

// 方法2: 直接解码 (推荐)
var user User
err := fxjson.DecodeStruct(jsonData, &user)

// 方法3: 极速解码 (性能关键)
var user User
err := fxjson.DecodeStructFast(jsonData, &user)

📚 文档更新

- ✅ 完善的API文档和使用示例
- ✅ 性能对比和选择建议
- ✅ 复杂结构体解码演示
- ✅ 错误处理最佳实践

🎯 最佳实践建议

- 高频调用场景使用 DecodeStructFast()
- 需要遍历+解码时使用 node.Decode()
- 一次性解码大量数据时使用 DecodeStruct()

🔄 向后兼容

- ✅ 完全向后兼容,现有代码无需修改
- ✅ 所有原有API保持不变
- ✅ 新增方法作为性能增强选项

---
让JSON解析飞得更快! 🚀

### Git 命令示例

```bash
# 创建带注释的tag
git tag -a v1.2.0 -m "v1.2.0 - High-Performance Decode Optimization

🚀 FxJSON v1.2.0 - 解码性能大幅优化

✨ 新增功能:
- DecodeStruct() - 直接从字节解码
- DecodeStructFast() - 极速解码引擎
- 全面的内部性能优化

📊 性能提升:
- 与标准库对比提升1.2-2.1倍
- 新增方法比原方法提升5-10%
- 零拷贝和预分配优化

🔄 完全向后兼容,现有代码无需修改"