// Standalone benchmark for dataset hash operations package worker_test import ( "os" "path/filepath" "testing" "github.com/jfraeys/fetch_ml/internal/worker" ) // BenchmarkSequentialHash profiles sequential directory hashing func BenchmarkSequentialHash(b *testing.B) { tmpDir := b.TempDir() // Create test files for i := 0; i < 50; i++ { subdir := filepath.Join(tmpDir, "data", string(rune('a'+i%26))) os.MkdirAll(subdir, 0750) data := make([]byte, 100*1024) // 100KB each os.WriteFile(filepath.Join(subdir, "chunk.bin"), data, 0640) } b.ResetTimer() b.ReportAllocs() for i := 0; i < b.N; i++ { _, err := worker.DirOverallSHA256Hex(tmpDir) if err != nil { b.Fatal(err) } } } // BenchmarkParallelHash profiles parallel directory hashing func BenchmarkParallelHash(b *testing.B) { tmpDir := b.TempDir() // Create test files for i := 0; i < 50; i++ { subdir := filepath.Join(tmpDir, "data", string(rune('a'+i%26))) os.MkdirAll(subdir, 0750) data := make([]byte, 100*1024) // 100KB each os.WriteFile(filepath.Join(subdir, "chunk.bin"), data, 0640) } b.ResetTimer() b.ReportAllocs() for i := 0; i < b.N; i++ { _, err := worker.DirOverallSHA256Hex(tmpDir) if err != nil { b.Fatal(err) } } }