32 lines
		
	
	
		
			771 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			771 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package jsonhelper
 | 
						|
 | 
						|
import (
 | 
						|
	"encoding/json"
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
var jsonStr = `{"W":1561651}`
 | 
						|
 | 
						|
var obj struct {
 | 
						|
	W int
 | 
						|
}
 | 
						|
 | 
						|
// 对比下 IJson 和 系统自带的 json 的效率
 | 
						|
// go test -bench=_QE_ -benchmem -run=^$
 | 
						|
// -benchtime 默认为1秒  -benchmem 获得内存分配的统计数据
 | 
						|
func Benchmark_QE_1(b *testing.B) {
 | 
						|
	for i := 0; i < b.N; i++ {
 | 
						|
		json.Unmarshal([]byte(jsonStr), &obj)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func Benchmark_QE_2(b *testing.B) {
 | 
						|
	for i := 0; i < b.N; i++ {
 | 
						|
		Unmarshal([]byte(jsonStr), &obj)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// Benchmark_QE_1-6         2252055               531.2 ns/op           240 B/op          6 allocs/op
 | 
						|
// Benchmark_QE_2-6         7650109               158.7 ns/op            16 B/op          1 allocs/op
 | 
						|
// 确实快了很多  不知道复杂的结构会不会不一样
 |