package main import ( "encoding/json" "fmt" "github.com/vmihailenco/msgpack" "labix.org/v2/mgo/bson" "unsafe" ) type Request struct { Version float32 Method string Params []string } func main() { var req = Request{ Version: 2.0, Method: "echo", Params: []string{ "some", "params", "here", }, } fmt.Printf("Struct Size: %d\r\n", unsafe.Sizeof(req)) bson_str, _ := bson.Marshal(&req) fmt.Printf("BSON Size: %d\r\n", unsafe.Sizeof(bson_str)) fmt.Printf("BSON Length: %d\r\n", len(bson_str)) fmt.Printf("%s\r\n", bson_str) json_str, _ := json.Marshal(&req) fmt.Printf("JSON Size: %d\r\n", unsafe.Sizeof(json_str)) fmt.Printf("JSON Length: %d\r\n", len(json_str)) fmt.Printf("%s\r\n", json_str) msgpack_str, _ := msgpack.Marshal(&req) fmt.Printf("MSGPACK Size: %d\r\n", unsafe.Sizeof(msgpack_str)) fmt.Printf("MSGPACK Length: %d\r\n", len(msgpack_str)) fmt.Printf("%s\r\n", msgpack_str) }