github.com/moontrade/nogc@v0.1.7/pointer_test.go (about)

     1  package nogc
     2  
     3  //func TestPointerBE(t *testing.T) {
     4  //	a := NewTLSF(1)
     5  //	p := Pointer(a.Alloc(32))
     6  //	p.SetInt32BE(0, 100)
     7  //	println(p.Int32BE(0), p.Int32BESlow(), p.Int32(0))
     8  //}
     9  //
    10  //func BenchmarkPointerBE(b *testing.B) {
    11  //	a := NewTLSF(1)
    12  //	p := Pointer(a.Alloc(32))
    13  //
    14  //	b.Run("Int32", func(b *testing.B) {
    15  //		for i := 0; i < b.N; i++ {
    16  //			p.Int32(0)
    17  //		}
    18  //	})
    19  //	b.Run("Int32BE", func(b *testing.B) {
    20  //		for i := 0; i < b.N; i++ {
    21  //			p.Int32BE(0)
    22  //		}
    23  //	})
    24  //	b.Run("Int32BE Slow", func(b *testing.B) {
    25  //		for i := 0; i < b.N; i++ {
    26  //			p.Int32BESlow()
    27  //		}
    28  //	})
    29  //	b.Run("UInt32BE", func(b *testing.B) {
    30  //		for i := 0; i < b.N; i++ {
    31  //			p.UInt32BE(0)
    32  //		}
    33  //	})
    34  //	b.Run("UInt32BE Slow", func(b *testing.B) {
    35  //		for i := 0; i < b.N; i++ {
    36  //			p.UInt32BESlow()
    37  //		}
    38  //	})
    39  //	b.Run("Int64", func(b *testing.B) {
    40  //		for i := 0; i < b.N; i++ {
    41  //			p.Int64(0)
    42  //		}
    43  //	})
    44  //	b.Run("Int64BE", func(b *testing.B) {
    45  //		for i := 0; i < b.N; i++ {
    46  //			p.Int64BE(0)
    47  //		}
    48  //	})
    49  //	b.Run("UInt64BE", func(b *testing.B) {
    50  //		for i := 0; i < b.N; i++ {
    51  //			p.UInt64BE(0)
    52  //		}
    53  //	})
    54  //	b.Run("UInt64BE Slow", func(b *testing.B) {
    55  //		for i := 0; i < b.N; i++ {
    56  //			p.UInt64BESlow()
    57  //		}
    58  //	})
    59  //}
    60  //
    61  ////goland:noinspection GoVetUnsafePointer
    62  //func (p Pointer) Int16BESlow() int16 {
    63  //	return int16(*(*byte)(unsafe.Pointer(p + 1))) |
    64  //		int16(*(*byte)(unsafe.Pointer(p)))<<8
    65  //}
    66  //
    67  ////goland:noinspection GoVetUnsafePointer
    68  //func (p Pointer) UInt24BESlow() uint32 {
    69  //	return uint32(*(*byte)(unsafe.Pointer(p + 2))) |
    70  //		uint32(*(*byte)(unsafe.Pointer(p + 1)))<<8 |
    71  //		uint32(*(*byte)(unsafe.Pointer(p)))<<16
    72  //}
    73  //
    74  ////goland:noinspection GoVetUnsafePointer
    75  //func (p Pointer) UInt32LESlow() uint32 {
    76  //	return uint32(*(*byte)(unsafe.Pointer(p + 3))) |
    77  //		uint32(*(*byte)(unsafe.Pointer(p + 2)))<<8 |
    78  //		uint32(*(*byte)(unsafe.Pointer(p + 1)))<<16 |
    79  //		uint32(*(*byte)(unsafe.Pointer(p)))<<24
    80  //}
    81  //
    82  ////goland:noinspection GoVetUnsafePointer
    83  //func (p Pointer) UInt64BESlow() uint64 {
    84  //	return uint64(*(*byte)(unsafe.Pointer(p + 7))) |
    85  //		uint64(*(*byte)(unsafe.Pointer(p + 6)))<<8 |
    86  //		uint64(*(*byte)(unsafe.Pointer(p + 5)))<<16 |
    87  //		uint64(*(*byte)(unsafe.Pointer(p + 4)))<<24 |
    88  //		uint64(*(*byte)(unsafe.Pointer(p + 3)))<<32 |
    89  //		uint64(*(*byte)(unsafe.Pointer(p + 2)))<<40 |
    90  //		uint64(*(*byte)(unsafe.Pointer(p + 1)))<<48 |
    91  //		uint64(*(*byte)(unsafe.Pointer(p)))<<56
    92  //}
    93  //
    94  ////goland:noinspection GoVetUnsafePointer
    95  //func (p Pointer) Int32BESlow() int32 {
    96  //	return int32(*(*byte)(unsafe.Pointer(p + 3))) |
    97  //		int32(*(*byte)(unsafe.Pointer(p + 2)))<<8 |
    98  //		int32(*(*byte)(unsafe.Pointer(p + 1)))<<16 |
    99  //		int32(*(*byte)(unsafe.Pointer(p)))<<24
   100  //}
   101  //
   102  //func BenchmarkPointerBESet(b *testing.B) {
   103  //	a := NewTLSF(1)
   104  //	p := Pointer(a.Alloc(32))
   105  //
   106  //	b.Run("SetInt32At", func(b *testing.B) {
   107  //		for i := 0; i < b.N; i++ {
   108  //			p.SetInt32BE(8, 1)
   109  //		}
   110  //	})
   111  //	b.Run("SetInt32BEAtSlow", func(b *testing.B) {
   112  //		for i := 0; i < b.N; i++ {
   113  //			//p.SetInt32BEAtSlow(8, 1)
   114  //		}
   115  //	})
   116  //
   117  //}