I noticed, that the embedded data is serialized using hex-encoding, which increases the file size of the generated pkged.go as well as the compiled binary. Using base64-encoding instead can reduce this overhead and is also only a small code change.
Hex-encoding has a ratio of 2:1, so every (gzipped) byte translates to 2 bytes of serialized data.
On the other hand base64-encoding only has a ratio of 4:3, so every 3 bytes of (gzipped) data result in 4 bytes of serialized data.
So with this commit every MB of packaged assets (after gzip) only ends up in ~1,333 MB instead of 2 MB in the binary.
Hi 👋,
I noticed, that the embedded data is serialized using hex-encoding, which increases the file size of the generated
pkged.go
as well as the compiled binary. Using base64-encoding instead can reduce this overhead and is also only a small code change.Hex-encoding has a ratio of 2:1, so every (gzipped) byte translates to 2 bytes of serialized data. On the other hand base64-encoding only has a ratio of 4:3, so every 3 bytes of (gzipped) data result in 4 bytes of serialized data.
So with this commit every MB of packaged assets (after gzip) only ends up in ~1,333 MB instead of 2 MB in the binary.