v1.27.0-a #10
@ -6,6 +6,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
@ -262,3 +263,37 @@ func BenchmarkHashChunk(b *testing.B) {
|
|||||||
_ = data[1]
|
_ = data[1]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func BenchmarkBuildTreeD512M(b *testing.B) {
|
||||||
|
const dataSize = 512 * 1024 * 1024 // 512 MiB
|
||||||
|
|
||||||
|
// Generate 512 MiB of random data
|
||||||
|
data := make([]byte, dataSize)
|
||||||
|
if _, err := rand.Read(data); err != nil {
|
||||||
|
b.Fatalf("Failed to generate random data: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
b.SetBytes(int64(dataSize)) // Set the number of bytes for the benchmark
|
||||||
|
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
// Create a temporary file for each iteration
|
||||||
|
tempFile, err := ioutil.TempFile("", "tree.dat")
|
||||||
|
if err != nil {
|
||||||
|
b.Fatalf("Failed to create temporary file: %v", err)
|
||||||
|
}
|
||||||
|
tempFilePath := tempFile.Name()
|
||||||
|
tempFile.Close()
|
||||||
|
|
||||||
|
b.StartTimer() // Start the timer for the BuildTreeD operation
|
||||||
|
|
||||||
|
_, err = BuildTreeD(bytes.NewReader(data), tempFilePath, dataSize)
|
||||||
|
if err != nil {
|
||||||
|
b.Fatalf("BuildTreeD failed: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
b.StopTimer() // Stop the timer after BuildTreeD completes
|
||||||
|
|
||||||
|
// Clean up the temporary file
|
||||||
|
os.Remove(tempFilePath)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user