package benchmarks import ( "testing" "github.com/jfraeys/fetch_ml/internal/worker" ) // BenchmarkContextReuse measures overhead of repeated hash operations // This verifies the 5-20ms savings from context reuse in native_bridge_libs.go func BenchmarkContextReuse(b *testing.B) { // Small test directory to emphasize context overhead vs I/O testDir := "./testdata/small_dataset" b.ResetTimer() for i := 0; i < b.N; i++ { _, err := worker.DirOverallSHA256HexParallel(testDir) if err != nil { b.Fatal(err) } } } // BenchmarkSequentialHashes simulates TUI scrolling through datasets // With context reuse: ~8ms per hash // Without context reuse: ~17ms per hash (9ms overhead) func BenchmarkSequentialHashes(b *testing.B) { testDir := "./testdata/small_dataset" b.ReportAllocs() b.ResetTimer() for i := 0; i < b.N; i++ { // Simulate viewing 10 datasets (like TUI scrolling) for j := 0; j < 10; j++ { _, err := worker.DirOverallSHA256HexParallel(testDir) if err != nil { b.Fatal(err) } } } }