极致性能优化
采用零分配设计,数组遍历比标准库快 67 倍,对象遍历快 20 倍。内置智能缓存系统,重复访问场景性能提升 4 倍。
encoding/json 性能不足,大量内存分配StringOr() IntOr() 等方法优雅处理异常package main
import (
"fmt"
"github.com/icloudza/fxjson"
)
func main() {
// 1. 解析 JSON(零分配)
json := `{"user":{"name":"张三","age":25,"skills":["Go","JSON"]}}`
node := fxjson.FromString(json)
// 2. 安全访问(自动处理错误)
name := node.GetPath("user.name").StringOr("未知")
age := node.GetPath("user.age").IntOr(0)
// 3. 高性能遍历(比标准库快67倍)
node.GetPath("user.skills").ArrayForEach(func(i int, skill fxjson.Node) bool {
fmt.Printf("技能 %d: %s\n", i+1, skill.StringOr(""))
return true
})
fmt.Printf("%s 今年 %d 岁\n", name, age)
}| 操作类型 | FxJSON | 标准库 | 性能提升 | 内存优势 |
|---|---|---|---|---|
| 数组遍历 | 30ns | 2044ns | 67.5x | 0 vs 1984B |
| 对象遍历 | 104ns | 2115ns | 20.2x | 0 vs 1984B |
| 字段访问 | 25ns | 2012ns | 80.8x | 0 vs 1984B |
| 缓存访问 | 642ns | 5542ns | 8.6x | 20B vs 6448B |
基准测试环境:Apple M4 Pro, Go 1.24