github.com/castai/kvisor@v1.7.1-0.20240516114728-b3572a2607b5/pkg/ebpftracer/tracer_decode_benchmark_test.go (about)

     1  package ebpftracer
     2  
     3  import (
     4  	"context"
     5  	"os"
     6  	"testing"
     7  )
     8  
     9  func BenchmarkFilterDecodeAndExportEvent(b *testing.B) {
    10  	files, err := os.ReadDir("./sample_events")
    11  	if err != nil {
    12  		b.Fatal(err)
    13  	}
    14  
    15  	for _, f := range files {
    16  		b.Run(f.Name(), func(b *testing.B) {
    17  			data, err := os.ReadFile("./sample_events/" + f.Name())
    18  			if err != nil {
    19  				b.Fatal(err)
    20  			}
    21  
    22  			tracer := buildTestTracer()
    23  
    24  			b.ReportAllocs()
    25  			b.ResetTimer()
    26  
    27  			for i := 0; i < b.N; i++ {
    28  				err := tracer.decodeAndExportEvent(context.TODO(), data)
    29  				if err != nil {
    30  					b.Fatal(err)
    31  				}
    32  
    33  				select {
    34  				case <-tracer.eventsChan:
    35  				default:
    36  					b.Fatal()
    37  				}
    38  			}
    39  		})
    40  	}
    41  }