Hi,
Gob in general is pretty efficient however I am seeing, what seems to be an
anomaly in its behavior when it comes to serilazing interfaces.
To elaborate, I have a program defining a simple interface called Dimension
and a struct Point.
*type Dimension interface{}*
*type Point struct {*
* X, Y, Z int64*
*}*
In first case I encode a slice of 10K Points but stored in an []Dimension
and in the second case i do the same with 10K Points stored in an []Point.
The former case serialized to disk is 526KB whereas later is only 146KB.
The type Point is registered using gob.Register
My naive interpretation is that the type is getting encoded for every entry
in the slice which seems non-optimal. I would hope that once the type
description is encoded it would be referenced and it shouldn't result in
this big difference.
Infact serializing to JSON also yields only 300KB.
The full sample code can be found here
https://play.golang.org/p/QLQm5BM25WW
Am I missing something here or is this the expected behavior?
Regards
Monmohan
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/golang-nuts/6ececfc1-b21c-4177-acbf-4847c42486fdn%40googlegroups.com.