diff --git a/cmd/bench/bench.go b/cmd/bench/bench.go index 51dbf80..8d04115 100644 --- a/cmd/bench/bench.go +++ b/cmd/bench/bench.go @@ -4,6 +4,7 @@ import ( "bufio" "fmt" "os" + "slices" "strconv" "strings" @@ -62,6 +63,11 @@ func parseBenchmarks() []BenchData { return entries } +type BenchSeries struct { + Name string + Data []opts.LineData +} + type BenchData struct { Suite string Name string @@ -125,14 +131,19 @@ func generateInsertManyCPULines(data []BenchData, name string, filter string) *c ) line.SetXAxis([]string{"10", "25", "50", "100", "250", "500"}) + seriesData := []BenchSeries{} for k, v := range entries { if !strings.Contains(k, filter) { continue } - - line.AddSeries(strings.ReplaceAll(k, filter, ""), generateLineSpeedData(v, name)) + seriesData = append(seriesData, BenchSeries{ + Name: strings.ReplaceAll(k, filter, ""), + Data: generateLineSpeedData(v, name), + }) } + drawLines(seriesData, line) + return line } @@ -153,20 +164,36 @@ func generateInsertManyAllocLines(data []BenchData, name string, filter string) ) line.SetXAxis([]string{"10", "25", "50", "100", "250", "500"}) + seriesData := []BenchSeries{} for k, v := range entries { if !strings.Contains(k, filter) { continue } - line.AddSeries(strings.ReplaceAll(k, filter, ""), generateLineAllocData(v, name)) + seriesData = append(seriesData, BenchSeries{ + Name: strings.ReplaceAll(k, filter, ""), + Data: generateLineAllocData(v, name), + }) } + drawLines(seriesData, line) + return line } +func drawLines(seriesData []BenchSeries, line *charts.Line) { + slices.SortFunc(seriesData, func(a, b BenchSeries) int { + return strings.Compare(a.Name, b.Name) + }) + + for _, v := range seriesData { + line.AddSeries(v.Name, v.Data) + } +} + func main() { data := parseBenchmarks() - for _, db := range []string{"Postgres", "SQLite"} { + for _, db := range []string{"Postgres", "SQLite", "MariaDB"} { for _, op := range []string{"InsertMany", "FindMany"} { f1, _ := os.Create(fmt.Sprintf("docs/public/bench_%s_%s_cpu.html", strings.ToLower(db), strings.ToLower(op))) defer f1.Close() diff --git a/devenv.lock b/devenv.lock index 5f8be94..e65ce4c 100644 --- a/devenv.lock +++ b/devenv.lock @@ -3,11 +3,11 @@ "devenv": { "locked": { "dir": "src/modules", - "lastModified": 1724763216, + "lastModified": 1725464985, "owner": "cachix", "repo": "devenv", - "rev": "1e4ef61205b9aa20fe04bf1c468b6a316281c4f1", - "treeHash": "5a8fdb7f5c9a192415fb9f16b950bbd0c9ea5f95", + "rev": "325588271687d275632958b4c988ef7a05772f65", + "treeHash": "a85a79c0941bff354a040b6d17fe1f542a661ed1", "type": "github" }, "original": { @@ -72,11 +72,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1724531977, + "lastModified": 1725407940, "owner": "NixOS", "repo": "nixpkgs", - "rev": "2527da1ef492c495d5391f3bcf9c1dd9f4514e32", - "treeHash": "d14102f174ee3125e8b0167d5edd69202147f6f4", + "rev": "6f6c45b5134a8ee2e465164811e451dcb5ad86e3", + "treeHash": "f65d5344b23cfbe3695140b602bc463349b26638", "type": "github" }, "original": { @@ -88,11 +88,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1724479785, + "lastModified": 1725103162, "owner": "nixos", "repo": "nixpkgs", - "rev": "d0e1602ddde669d5beb01aec49d71a51937ed7be", - "treeHash": "79464de14ea14ded4fd827be538729d4c6d6b09d", + "rev": "12228ff1752d7b7624a54e9c1af4b222b3c1073b", + "treeHash": "d8cc3c37ece87a2f965f4749978f64552871c243", "type": "github" }, "original": { @@ -112,11 +112,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1724837688, + "lastModified": 1725513492, "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "e4b258096adade1daed37f732c343d1b5374dfae", - "treeHash": "a4fb93ad9285f7872144df5395150475620b8f40", + "rev": "7570de7b9b504cfe92025dd1be797bf546f66528", + "treeHash": "4b46d77870afecd8f642541cb4f4927326343b59", "type": "github" }, "original": { diff --git a/docs/bench/bench.md b/docs/bench/bench.md index c9c1b1b..bf298ad 100644 --- a/docs/bench/bench.md +++ b/docs/bench/bench.md @@ -89,4 +89,45 @@ Tested in `:memory:` mode