How to profile a library

I started to write this but you haven’t provided a runnable sample so I couldn’t finish it. This should be pretty close

package vectors

import (
        "math/rand"
        "testing"

        "github.com/deathly809/gomath"
)

func genFloat32Array(n int, min, max float32) []float32 {
        A := make([]float32, n)
        for i := 0; i < n; i++ {
                A[i] = gomath.ScaleFloat32(min, max, 0, 1.0, rand.Float32())
        }
        return A
}

/* stuff */
const (
        N = 100000000
)

/* stuff */
var (
        A = genFloat32Array(N, 0.0, 1.0)
        B = genFloat32Array(N, 0.0, 1.0)
)

var result []float32

func BenchmarkDotFloat32(b *testing.B) {
        var r []float32
        for i := 0; i < b.N; i++ {
                r = DotFloat32(A, B)
        }
        result = r
}
1 Like