zorm 1.2.8 发布,附 zorm 与 gorm xorm 的性能压测结果

zorm,golang 轻量级 ORM,readygo子项目

更新内容如下:

  1. 暴露FuncGenerateStringID函数,方便自定义扩展字符串主键ID
  2. Finder.Append 默认加一个空格,避免手误出现语法错误
  3. 缓存字段信息时,使用map代替sync.Map,提高性能
  4. 第三方性能压测结果

压测代码:https://github.com/alphayan/goormbenchmark

2000 times - Insert
      zorm:     9.05s      4524909 ns/op    2146 B/op     33 allocs/op
      gorm:     9.60s      4800617 ns/op    5407 B/op    119 allocs/op
      xorm:    12.63s      6315205 ns/op    2365 B/op     56 allocs/op

    2000 times - BulkInsert 100 row
      xorm:    23.89s     11945333 ns/op  253812 B/op   4250 allocs/op
      gorm:     Don't support bulk insert - https://github.com/jinzhu/gorm/issues/255
      zorm:     Don't support bulk insert

    2000 times - Update
      xorm:     0.39s       195846 ns/op    2529 B/op     87 allocs/op
      zorm:     0.51s       253577 ns/op    2232 B/op     32 allocs/op
      gorm:     0.73s       366905 ns/op    9157 B/op    226 allocs/op

  2000 times - Read
      zorm:     0.28s       141890 ns/op    1616 B/op     43 allocs/op
      gorm:     0.45s       223720 ns/op    5931 B/op    138 allocs/op
      xorm:     0.55s       276055 ns/op    8648 B/op    227 allocs/op

  2000 times - MultiRead limit 1000
      zorm:    13.93s      6967146 ns/op  694286 B/op  23054 allocs/op
      gorm:    26.40s     13201878 ns/op 2392826 B/op  57031 allocs/op
      xorm:    30.77s     15382967 ns/op 1637098 B/op  72088 allocs/op

源码地址:https://gitee.com/chunanyong/zorm

go get gitee.com/chunanyong/zorm 
  • 基于原生 sql 语句编写,是 springrain 的精简和优化
  • 自带代码生成器
  • 代码精简,总计 2000 行左右,注释详细,方便定制修改
  • 支持事务传播,这是zorm诞生的主要原因
  • 支持 mysql、postgresql、oracle、mssql、sqlite
  • 支持数据库读写分离

生产使用参考 UserStructService.go

猜你喜欢

转载自www.oschina.net/news/114348/zorm-1-2-8-released