github.com/gogf/gf/v2@v2.7.4/os/gstructs/gstructs_z_bench_test.go (about)

     1  // Copyright GoFrame Author(https://goframe.org). All Rights Reserved.
     2  //
     3  // This Source Code Form is subject to the terms of the MIT License.
     4  // If a copy of the MIT was not distributed with this file,
     5  // You can obtain one at https://github.com/gogf/gf.
     6  
     7  package gstructs_test
     8  
     9  import (
    10  	"reflect"
    11  	"testing"
    12  
    13  	"github.com/gogf/gf/v2/os/gstructs"
    14  )
    15  
    16  type User struct {
    17  	Id   int
    18  	Name string `params:"name"`
    19  	Pass string `my-tag1:"pass1" my-tag2:"pass2" params:"pass"`
    20  }
    21  
    22  var (
    23  	user           = new(User)
    24  	userNilPointer *User
    25  )
    26  
    27  func Benchmark_ReflectTypeOf(b *testing.B) {
    28  	for i := 0; i < b.N; i++ {
    29  		reflect.TypeOf(user).String()
    30  	}
    31  }
    32  
    33  func Benchmark_TagFields(b *testing.B) {
    34  	for i := 0; i < b.N; i++ {
    35  		gstructs.TagFields(user, []string{"params", "my-tag1"})
    36  	}
    37  }
    38  
    39  func Benchmark_TagFields_NilPointer(b *testing.B) {
    40  	for i := 0; i < b.N; i++ {
    41  		gstructs.TagFields(&userNilPointer, []string{"params", "my-tag1"})
    42  	}
    43  }