Stefan Oltmann
09/15/2025, 8:05 PMStefan Oltmann
09/15/2025, 8:07 PM### CER-C-343676989-0-0-0
-> JSON = 14.713 KB
-> JSON (GZIP 9) = 3.995 KB
-> JSON (ZSTD 19) = 3.735 KB
-> Protobuf = 5.881 KB
--- --- --- --- ---
-> Protobuf (GZIP 0) = 5.904 KB in 510.9us
-> Protobuf (GZIP 1) = 3.141 KB in 186.1us
-> Protobuf (GZIP 2) = 3.090 KB in 128.7us
-> Protobuf (GZIP 3) = 3.056 KB in 143.4us
-> Protobuf (GZIP 4) = 3.000 KB in 167.9us
-> Protobuf (GZIP 5) = 2.949 KB in 216.1us
-> Protobuf (GZIP 6) = 2.943 KB in 232.0us
-> Protobuf (GZIP 7) = 2.943 KB in 242.5us
-> Protobuf (GZIP 8) = 2.942 KB in 250.9us
-> Protobuf (GZIP 9) = 2.942 KB in 252.0us
--- --- --- --- ---
-> Protobuf (ZSTD 0) = 3.052 KB in 155.2us
-> Protobuf (ZSTD 1) = 3.058 KB in 105.4us
-> Protobuf (ZSTD 2) = 3.084 KB in 93.7us
-> Protobuf (ZSTD 3) = 3.052 KB in 114.5us
-> Protobuf (ZSTD 4) = 2.986 KB in 146.5us
-> Protobuf (ZSTD 5) = 2.960 KB in 172.4us
-> Protobuf (ZSTD 6) = 2.958 KB in 177.2us
-> Protobuf (ZSTD 7) = 2.958 KB in 180.0us
-> Protobuf (ZSTD 8) = 2.957 KB in 183.4us
-> Protobuf (ZSTD 9) = 2.951 KB in 303.3us
-> Protobuf (ZSTD 10) = 2.951 KB in 278.4us
-> Protobuf (ZSTD 11) = 2.935 KB in 411.2us
-> Protobuf (ZSTD 12) = 2.901 KB in 493.9us
-> Protobuf (ZSTD 13) = 2.865 KB in 602.0us
-> Protobuf (ZSTD 14) = 2.865 KB in 597.2us
-> Protobuf (ZSTD 15) = 2.865 KB in 606.3us
-> Protobuf (ZSTD 16) = 2.848 KB in 1.059700ms
-> Protobuf (ZSTD 17) = 2.848 KB in 1.041300ms
-> Protobuf (ZSTD 18) = 2.848 KB in 1.047400ms
-> Protobuf (ZSTD 19) = 2.848 KB in 1.043600ms
-> Protobuf (ZSTD 20) = 2.848 KB in 1.049100ms
-> Protobuf (ZSTD 21) = 2.848 KB in 1.047400ms
-> Protobuf (ZSTD 22) = 2.848 KB in 1.042800msStefan Oltmann
09/15/2025, 8:09 PMStefan Oltmann
09/15/2025, 8:10 PMStefan Oltmann
09/15/2025, 8:15 PMephemient
09/15/2025, 8:26 PMStefan Oltmann
09/15/2025, 8:27 PMephemient
09/15/2025, 8:27 PMStefan Oltmann
09/15/2025, 8:27 PMStefan Oltmann
09/15/2025, 8:28 PMephemient
09/15/2025, 8:30 PMStefan Oltmann
09/15/2025, 8:31 PMStefan Oltmann
09/15/2025, 8:34 PMYoussef Shoaib [MOD]
09/15/2025, 8:41 PMStefan Oltmann
09/15/2025, 8:44 PMYoussef Shoaib [MOD]
09/15/2025, 8:47 PMStefan Oltmann
09/15/2025, 8:49 PMStefan Oltmann
09/15/2025, 8:50 PMYoussef Shoaib [MOD]
09/15/2025, 8:50 PMStefan Oltmann
09/15/2025, 8:51 PMStefan Oltmann
09/15/2025, 8:53 PMStefan Oltmann
09/15/2025, 8:54 PMphldavies
09/15/2025, 8:55 PMStefan Oltmann
09/15/2025, 8:59 PMStefan Oltmann
09/15/2025, 9:01 PM@Serializable
@OptIn(ExperimentalSerializationApi::class)
data class StarMapEntrySpacedOut(
@ProtoNumber(1)
val id: SpacedOutSpacePOI,
@ProtoNumber(2)
val q: Byte,
@ProtoNumber(3)
val r: Byte
)Youssef Shoaib [MOD]
09/15/2025, 9:02 PMStefan Oltmann
09/15/2025, 9:04 PMStefan Oltmann
09/15/2025, 9:06 PMYoussef Shoaib [MOD]
09/15/2025, 9:08 PMphldavies
09/15/2025, 9:08 PMStefan Oltmann
09/15/2025, 9:08 PMStefan Oltmann
09/15/2025, 9:10 PMIf you can sort the coordinates you could delta-encode the set assuming they're deltas are smaller and fit in a single byte varintGood idea. I did that with the points of the biome vectors (the colors in the back). That saved a lot. Maybe that's also possible for the coordinates.
Youssef Shoaib [MOD]
09/15/2025, 9:11 PMStefan Oltmann
09/15/2025, 9:13 PMStefan Oltmann
09/15/2025, 9:14 PMStefan Oltmann
09/15/2025, 9:15 PMYoussef Shoaib [MOD]
09/15/2025, 9:18 PMStefan Oltmann
09/15/2025, 9:20 PMStefan Oltmann
09/15/2025, 9:22 PMStefan Oltmann
09/15/2025, 9:22 PMStefan Oltmann
09/15/2025, 9:24 PMStefan Oltmann
09/15/2025, 9:25 PMStefan Oltmann
09/15/2025, 9:33 PMYoussef Shoaib [MOD]
09/15/2025, 9:34 PMStefan Oltmann
09/15/2025, 9:36 PMStefan Oltmann
09/15/2025, 9:38 PMYoussef Shoaib [MOD]
09/15/2025, 9:39 PMStefan Oltmann
09/15/2025, 9:40 PMStefan Oltmann
09/15/2025, 9:41 PMAsteroid Max size: 256, Max height: 384So interesting that these two values are exact multiples of 128. That tells me something about their data structures
Stefan Oltmann
09/15/2025, 9:52 PM### CER-C-343676989-0-0-0
-> JSON = 14.665 KB
-> JSON (GZIP 9) = 3.958 KB
-> JSON (ZSTD 19) = 3.696 KB
-> Protobuf = 5.864 KB
--- --- --- --- ---
-> Protobuf (GZIP 0) = 5.887 KB in 433.4us (decompression = 478.2us)
-> Protobuf (GZIP 1) = 3.107 KB in 171.6us (decompression = 81.8us)
-> Protobuf (GZIP 2) = 3.066 KB in 126.8us (decompression = 67.2us)
-> Protobuf (GZIP 3) = 3.029 KB in 140.6us (decompression = 70.9us)
-> Protobuf (GZIP 4) = 2.98 KB in 157.6us (decompression = 70.9us)
-> Protobuf (GZIP 5) = 2.925 KB in 215.3us (decompression = 72.4us)
-> Protobuf (GZIP 6) = 2.923 KB in 241.6us (decompression = 75.3us)
-> Protobuf (GZIP 7) = 2.923 KB in 244.9us (decompression = 62.9us)
-> Protobuf (GZIP 8) = 2.922 KB in 248.4us (decompression = 84.5us)
-> Protobuf (GZIP 9) = 2.922 KB in 258.7us (decompression = 71us)
--- --- --- --- ---
-> Protobuf (ZSTD 0) = 3.037 KB in 155.2us (decompression = 583.9us)
-> Protobuf (ZSTD 1) = 3.042 KB in 108.7us (decompression = 29.2us)
-> Protobuf (ZSTD 2) = 3.069 KB in 90.8us (decompression = 29.4us)
-> Protobuf (ZSTD 3) = 3.037 KB in 116.7us (decompression = 27.5us)
-> Protobuf (ZSTD 4) = 2.975 KB in 152.4us (decompression = 26.8us)
-> Protobuf (ZSTD 5) = 2.95 KB in 162.4us (decompression = 26.5us)
-> Protobuf (ZSTD 6) = 2.943 KB in 185.5us (decompression = 26.2us)
-> Protobuf (ZSTD 7) = 2.936 KB in 180us (decompression = 30.2us)
-> Protobuf (ZSTD 8) = 2.936 KB in 180.7us (decompression = 25.6us)
-> Protobuf (ZSTD 9) = 2.934 KB in 293.6us (decompression = 26.9us)
-> Protobuf (ZSTD 10) = 2.934 KB in 270.9us (decompression = 26.3us)
-> Protobuf (ZSTD 11) = 2.92 KB in 401.3us (decompression = 30.8us)
-> Protobuf (ZSTD 12) = 2.878 KB in 495.4us (decompression = 29.6us)
-> Protobuf (ZSTD 13) = 2.843 KB in 598.3us (decompression = 29.4us)
-> Protobuf (ZSTD 14) = 2.843 KB in 591.3us (decompression = 27.2us)
-> Protobuf (ZSTD 15) = 2.843 KB in 598.4us (decompression = 27.9us)
-> Protobuf (ZSTD 16) = 2.82 KB in 1.048400ms (decompression = 27.9us)
-> Protobuf (ZSTD 17) = 2.82 KB in 1.050200ms (decompression = 28.7us)
-> Protobuf (ZSTD 18) = 2.82 KB in 1.041900ms (decompression = 27.6us)
-> Protobuf (ZSTD 19) = 2.82 KB in 1.049ms (decompression = 27.6us)
-> Protobuf (ZSTD 20) = 2.82 KB in 1.055300ms (decompression = 27.8us)
-> Protobuf (ZSTD 21) = 2.82 KB in 1.043900ms (decompression = 28.1us)
-> Protobuf (ZSTD 22) = 2.82 KB in 1.054900ms (decompression = 28.3us)Stefan Oltmann
09/15/2025, 9:55 PMStefan Oltmann
09/16/2025, 9:38 PM@ProtoPacked would have had more effect ...
https://github.com/StefanOltmann/oni-seed-browser-backend/commit/132591d5793f196f74b0a58ece5d87c19d541c8b
Normal:
### CER-C-343676989-0-0-0
-> JSON = 14.473 KB
-> JSON (GZIP 9) = 3.935 KB
-> JSON (ZSTD 19) = 3.690 KB
-> Protobuf = 5.833 KB
--- --- --- --- ---
-> Protobuf (GZIP 0) = 5.856 KB in 1.129900ms (decompression = 467.8us)
-> Protobuf (GZIP 9) = 2.914 KB in 273.7us (decompression = 74.0us)
--- --- --- --- ---
-> Protobuf (ZSTD 0) = 3.018 KB in 154.6us (decompression = 538.2us)
-> Protobuf (ZSTD 22) = 2.820 KB in 1.103500ms (decompression = 35.5us)
Compacted:
### CER-C-343676989-0-0-0
-> JSON = 8.423 KB
-> JSON (GZIP 9) = 3.228 KB
-> JSON (ZSTD 19) = 3.095 KB
-> Protobuf = 5.053 KB
--- --- --- --- ---
-> Protobuf (GZIP 0) = 5.076 KB in 349.0us (decompression = 460.6us)
-> Protobuf (GZIP 9) = 2.710 KB in 229.2us (decompression = 65.5us)
--- --- --- --- ---
-> Protobuf (ZSTD 0) = 2.719 KB in 139.7us (decompression = 548.0us)
-> Protobuf (ZSTD 22) = 2.581 KB in 879.5us (decompression = 24.8us)Stefan Oltmann
09/16/2025, 9:41 PMStefan Oltmann
09/16/2025, 9:52 PM### CER-C-343676989-0-0-0
-> JSON = 14.397 KB
-> JSON (GZIP 9) = 3.880 KB
-> JSON (ZSTD 19) = 3.620 KB
-> Protobuf = 5.809 KB
--- --- --- --- ---
-> Protobuf (GZIP 0) = 5.832 KB in 464.8us (decompression = 504.8us)
-> Protobuf (GZIP 9) = 2.861 KB in 255.2us (decompression = 65us)
--- --- --- --- ---
-> Protobuf (ZSTD 0) = 2.977 KB in 154.5us (decompression = 578.6us)
-> Protobuf (ZSTD 22) = 2.758 KB in 1.050900ms (decompression = 30.7us)Stefan Oltmann
09/16/2025, 9:55 PM16:80 135 0 -91 -16 0 -4 -6 -9 -2 -11 10 -11 -9 -9 2 -4 8 -16 0 0 93 13 0 7 -7 4 0 8 10 13 -3 3 3 13 -2 4 -6|80 174 0 -21 -13 1 -3 4 -14 1 -2 -2 -14 2 -6 -5 -10 1 -2 2 -16 1 0 16 12:80 153 0 -18 -15 0 -4 6 -13 2 -3 -3 -13 3 -8 -10 -4 0 -7 7 -13 0 0 18 16 -1 2 -2 10 -1 6 5 14 -2 2 2 14 -1 3 -4
That's already polybooled & delta encoded.
I save it as string, because (to my surprise) I wasn't able to make a smaller protobuf version out of it.Stefan Oltmann
09/16/2025, 10:03 PM### CER-C-343676989-0-0-0
-> JSON = 10.590 KB
-> JSON (GZIP 9) = 2.287 KB
-> JSON (ZSTD 19) = 2.130 KB
-> Protobuf = 1.960 KB
--- --- --- --- ---
-> Protobuf (GZIP 0) = 1.983 KB in 348.2us (decompression = 422.2us)
-> Protobuf (GZIP 1) = 1.317 KB in 80.4us (decompression = 49.2us)
-> Protobuf (GZIP 5) = 1.294 KB in 73.0us (decompression = 43.9us)
-> Protobuf (GZIP 9) = 1.290 KB in 78.0us (decompression = 37.7us)
--- --- --- --- ---
-> Protobuf (ZSTD 0) = 1.343 KB in 96.9us (decompression = 492.8us)
-> Protobuf (ZSTD 1) = 1.370 KB in 63.3us (decompression = 21us)
-> Protobuf (ZSTD 2) = 1.355 KB in 45.6us (decompression = 19.8us)
-> Protobuf (ZSTD 3) = 1.343 KB in 51.4us (decompression = 19.6us)
-> Protobuf (ZSTD 4) = 1.336 KB in 71.3us (decompression = 20.2us)
-> Protobuf (ZSTD 5) = 1.327 KB in 81.3us (decompression = 26.1us)
-> Protobuf (ZSTD 22) = 1.267 KB in 274.4us (decompression = 22.7us)Stefan Oltmann
09/16/2025, 10:29 PMStefan Oltmann
09/16/2025, 10:31 PMephemient
10/07/2025, 1:06 AM