Skip to content

Commit

Permalink
fix bench
Browse files Browse the repository at this point in the history
  • Loading branch information
efectn committed Oct 29, 2023
1 parent d06a28a commit 6a30da9
Showing 1 changed file with 30 additions and 33 deletions.
63 changes: 30 additions & 33 deletions bench/queryx.go
Expand Up @@ -9,132 +9,129 @@ import (
_ "github.com/lib/pq"
)

var (
c *db.QXClient
)

const (
queryxSelectMultiSQL = `SELECT * FROM models WHERE id > 0`
)

type Queryx struct {
helper.ORMInterface
client *db.QXClient
}

func CreateQueryx() helper.ORMInterface {
return &Queryx{}
}

func (Queryx *Queryx) Name() string {
func (q *Queryx) Name() string {
return "queryx"
}

func (Queryx *Queryx) Init() error {
func (q *Queryx) Init() error {
client, err := db.NewClient()
if err != nil {
return err
}
c = client
q.client = client
return err
}

func (Queryx *Queryx) Close() error {
func (q *Queryx) Close() error {
return nil
}

func (Queryx *Queryx) Insert(b *testing.B) {
func (q *Queryx) Insert(b *testing.B) {
m := NewModel8()

b.ReportAllocs()
b.ResetTimer()

for i := 0; i < b.N; i++ {
m.ID = 0
_, err := c.QueryModel().Create(c.ChangeModel().SetName(m.Name).
_, err := q.client.QueryModel().Create(q.client.ChangeModel().SetName(m.Name).
SetTitle(m.Title).SetFax(m.Fax).SetWeb(m.Web).SetAge(int64(m.Age)).SetCounter(int32(m.Counter)).SetRight(true))
if err != nil {
helper.SetError(b, Queryx.Name(), "Insert", err.Error())
helper.SetError(b, q.Name(), "Insert", err.Error())
}
}
}

func (Queryx *Queryx) InsertMulti(b *testing.B) {
func (q *Queryx) InsertMulti(b *testing.B) {
m := NewModel8()
ms := make([]*queryx.ModelChange, 0, 100)
for i := 0; i < 100; i++ {
ms = append(ms, c.ChangeModel().SetName(m.Name).
ms = append(ms, q.client.ChangeModel().SetName(m.Name).
SetTitle(m.Title).SetFax(m.Fax).SetWeb(m.Web).SetAge(int64(m.Age)).SetCounter(int32(m.Counter)).SetRight(true))
}

b.ReportAllocs()
b.ResetTimer()

for i := 0; i < b.N; i++ {
_, err := c.QueryModel().InsertAll(ms)
_, err := q.client.QueryModel().InsertAll(ms)
if err != nil {
helper.SetError(b, Queryx.Name(), "InsertMulti", err.Error())
helper.SetError(b, q.Name(), "InsertMulti", err.Error())
}
}
}

func (Queryx *Queryx) Update(b *testing.B) {
func (q *Queryx) Update(b *testing.B) {
m := NewModel8()
change := c.ChangeModel().SetName(m.Name).SetRight(true).
change := q.client.ChangeModel().SetName(m.Name).SetRight(true).
SetTitle(m.Title).SetFax(m.Fax).SetWeb(m.Web).SetAge(int64(m.Age)).SetCounter(int32(m.Counter))
m8, err := c.QueryModel().Create(change)
m8, err := q.client.QueryModel().Create(change)
if err != nil {
helper.SetError(b, Queryx.Name(), "Update", err.Error())
helper.SetError(b, q.Name(), "Update", err.Error())
}

b.ReportAllocs()
b.ResetTimer()

for i := 0; i < b.N; i++ {
_, err := c.QueryModel().Where(c.ModelID.EQ(m8.ID)).UpdateAll(change)
_, err := q.client.QueryModel().Where(q.client.ModelID.EQ(m8.ID)).UpdateAll(change)
if err != nil {
helper.SetError(b, Queryx.Name(), "Update", err.Error())
helper.SetError(b, q.Name(), "Update", err.Error())
}
}
}

func (Queryx *Queryx) Read(b *testing.B) {
func (q *Queryx) Read(b *testing.B) {
m := NewModel8()
change := c.ChangeModel().SetName(m.Name).SetRight(true).
change := q.client.ChangeModel().SetName(m.Name).SetRight(true).
SetTitle(m.Title).SetFax(m.Fax).SetWeb(m.Web).SetAge(int64(m.Age)).SetCounter(int32(m.Counter))
_, err := c.QueryModel().Create(change)
_, err := q.client.QueryModel().Create(change)
if err != nil {
helper.SetError(b, Queryx.Name(), "Read", err.Error())
helper.SetError(b, q.Name(), "Read", err.Error())
}

b.ReportAllocs()
b.ResetTimer()

for i := 0; i < b.N; i++ {
_, err := c.QueryModel().FindBy(c.ModelName.EQ(m.Name))
_, err := q.client.QueryModel().FindBy(q.client.ModelName.EQ(m.Name))
if err != nil {
helper.SetError(b, Queryx.Name(), "Read", err.Error())
helper.SetError(b, q.Name(), "Read", err.Error())
}
}
}

func (Queryx *Queryx) ReadSlice(b *testing.B) {
func (q *Queryx) ReadSlice(b *testing.B) {
m := NewModel8()
change := c.ChangeModel().SetName(m.Name).SetRight(true).
change := q.client.ChangeModel().SetName(m.Name).SetRight(true).
SetTitle(m.Title).SetFax(m.Fax).SetWeb(m.Web).SetAge(int64(m.Age)).SetCounter(int32(m.Counter))
for i := 0; i < 100; i++ {
_, err := c.QueryModel().Create(change)
_, err := q.client.QueryModel().Create(change)
if err != nil {
helper.SetError(b, Queryx.Name(), "ReadSlice", err.Error())
helper.SetError(b, q.Name(), "ReadSlice", err.Error())
}
}

b.ReportAllocs()
b.ResetTimer()

for i := 0; i < b.N; i++ {
_, err := c.QueryModel().FindBySQL(queryxSelectMultiSQL)
_, err := q.client.QueryModel().FindBySQL(queryxSelectMultiSQL)
if err != nil {
helper.SetError(b, Queryx.Name(), "ReadSlice", err.Error())
helper.SetError(b, q.Name(), "ReadSlice", err.Error())
}
}
}

0 comments on commit 6a30da9

Please sign in to comment.