Skip to content

Version 0.8: Performance Optimization#53

Merged
devfeel merged 12 commits intodevelopfrom
aicode
Mar 12, 2026
Merged

Version 0.8: Performance Optimization#53
devfeel merged 12 commits intodevelopfrom
aicode

Conversation

@devfeel
Copy link
Owner

@devfeel devfeel commented Mar 12, 2026

🚀 Version 0.8

⚡ Performance Optimization

  • MapDirect 系列函数 - 新增函数式泛型 API,带字段映射缓存
方法 旧版本 新版本 提升
单次映射 3,897 ns/op 556 ns/op 7x
批量映射 (100条) 452,718 ns/op 59,185 ns/op 7.6x
内存占用 400 B/op 272 B/op -32%
内存分配 42 allocs/op 4 allocs/op -90%

✨ New APIs

  • MapDirect[From, To](from From) To - 直接返回映射结果
  • MapDirectPtr[From, To](from *From) *To - 指针版本
  • MapDirectSlice[From, To](from []From) []To - 批量映射
  • MapDirectPtrSlice[From, To](from []*From) []*To - 指针批量
  • SafeMapDirect[From, To](from From) (To, error) - 带错误处理
  • SafeMapDirectSlice[From, To](from []From) ([]To, error) - 批量安全映射

🧪 Improvements

  • 新增 Benchmark 测试用例
  • 新增 example/func 使用示例

🔴 Breaking Changes

  • 移除已废弃的 mapper_generic.go / mapper_generic_test.go
  • 移除已废弃的 example/generic

OpenClaw and others added 12 commits March 10, 2026 08:29
- Add field mapping cache using sync.Map
- Reduce reflection calls for better performance
- Add comprehensive benchmark tests
- Performance improvement: ~7x faster for single mapping, ~7.6x for slice
- Add example/func with MapDirect usage examples
- Cover all APIs: MapDirect, MapDirectPtr, MapDirectSlice, etc.
- Include performance demo for cache effect

🐾 Generated by 小源
- Remove mapper_generic.go
- Remove mapper_generic_test.go

These are replaced by mapper_func.go with better performance

🐾 Generated by 小源
Replaced by example/func with better API design

🐾 Generated by 小源
perf: optimize MapDirect with field mapping cache
🐾 Generated by 小源
@devfeel devfeel merged commit 1c5e554 into develop Mar 12, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant