github.com/bananabytelabs/wazero@v0.0.0-20240105073314-54b22a776da8/internal/integration_test/bench/memory_bench_test.go (about)

     1  package bench
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/bananabytelabs/wazero/internal/wasm"
     7  )
     8  
     9  func BenchmarkMemory(b *testing.B) {
    10  	mem := &wasm.MemoryInstance{Buffer: make([]byte, wasm.MemoryPageSize), Min: 1}
    11  	if !mem.WriteByte(10, 16) {
    12  		b.Fail()
    13  	}
    14  
    15  	b.Run("ReadByte", func(b *testing.B) {
    16  		for i := 0; i < b.N; i++ {
    17  			if v, ok := mem.ReadByte(10); !ok || v != 16 {
    18  				b.Fail()
    19  			}
    20  		}
    21  	})
    22  
    23  	b.Run("ReadUint32Le", func(b *testing.B) {
    24  		for i := 0; i < b.N; i++ {
    25  			if v, ok := mem.ReadUint32Le(10); !ok || v != 16 {
    26  				b.Fail()
    27  			}
    28  		}
    29  	})
    30  
    31  	b.Run("WriteByte", func(b *testing.B) {
    32  		for i := 0; i < b.N; i++ {
    33  			if !mem.WriteByte(10, 16) {
    34  				b.Fail()
    35  			}
    36  		}
    37  	})
    38  
    39  	b.Run("WriteUint32Le", func(b *testing.B) {
    40  		for i := 0; i < b.N; i++ {
    41  			if !mem.WriteUint32Le(10, 16) {
    42  				b.Fail()
    43  			}
    44  		}
    45  	})
    46  }