glebarez / sqlite

The pure-Go SQLite driver for GORM
MIT License
592 stars 39 forks source link

速度较cgo版本差距有点大 #109

Closed aveyuan closed 9 months ago

aveyuan commented 9 months ago

两者对比试试看 main.go

package main

import (
    "log"
    "time"

    "gorm.io/driver/sqlite"
    "gorm.io/gorm"
)

type Product struct {
    gorm.Model
    Code  string
    Price uint
}

func main() {
    db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
    if err != nil {
        panic("failed to connect database")
    }

    // Migrate the schema
    db.AutoMigrate(&Product{})

    s := time.Now()
    for i := 0; i < 100; i++ {
        // Create
        db.Create(&Product{Code: "D42", Price: 100})
    }
    log.Print(time.Since(s).Seconds())

}

对比下这个


package main

import (
    "log"
    "time"

    "github.com/glebarez/sqlite"
    "gorm.io/gorm"
)

type Product struct {
    gorm.Model
    Code  string
    Price uint
}

func main() {

    db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{})
    if err != nil {
        panic(err)
    }
    // Migrate the schema
    db.AutoMigrate(&Product{})

    s := time.Now()
    for i := 0; i < 100; i++ {
         db.Create(&Product{Code: "D42", Price: 100})
    }
    log.Print(time.Since(s).Seconds())

}

``