Created
June 8, 2018 10:16
-
-
Save iwanbk/afd85252c184a024aa22b31c860234b3 to your computer and use it in GitHub Desktop.
json serialization benchmark
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"encoding/json" | |
"testing" | |
) | |
func BenchmarkMapNakedInterface(b *testing.B) { | |
m := map[string]interface{}{ | |
"col1": "val1", | |
"col2": "val2", | |
"col3": "val3", | |
"col4": "val4", | |
"col5": "val5", | |
"col6": "val6", | |
"col7": "val4", | |
"col8": "val5", | |
"col9": "val6", | |
} | |
for n := 0; n < b.N; n++ { | |
_, err := json.Marshal(m) | |
if err != nil { | |
b.Fatalf("err:%v", err) | |
} | |
} | |
} | |
func BenchmarkMapString(b *testing.B) { | |
m := map[string]string{ | |
"col1": "val1", | |
"col2": "val2", | |
"col3": "val3", | |
"col4": "val4", | |
"col5": "val5", | |
"col6": "val6", | |
"col7": "val4", | |
"col8": "val5", | |
"col9": "val6", | |
} | |
for n := 0; n < b.N; n++ { | |
_, err := json.Marshal(m) | |
if err != nil { | |
b.Fatalf("err:%v", err) | |
} | |
} | |
} | |
type data struct { | |
Col1 string | |
Col2 string | |
Col3 string | |
Col4 string | |
Col5 string | |
Col6 string | |
Col7 string | |
Col8 string | |
Col9 string | |
} | |
func BenchmarkStruct(b *testing.B) { | |
d := data{ | |
Col1: "val1", | |
Col2: "val2", | |
Col3: "val3", | |
Col4: "val4", | |
Col5: "val5", | |
Col6: "val6", | |
Col7: "val4", | |
Col8: "val5", | |
Col9: "val6", | |
} | |
for n := 0; n < b.N; n++ { | |
_, err := json.Marshal(d) | |
if err != nil { | |
b.Fatalf("err:%v", err) | |
} | |
} | |
} |
Author
iwanbk
commented
Jun 8, 2018
•
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment