a on Nostr: ...
同じことをJSONテキストにシリアライズした場合でやってみた。
(この時はgolangのライブラリ関数ではなく、7zipのgzip圧縮でやった。オプションは標準。圧縮の条件がバイナリの時と厳密には違う可能性あり)
圧縮前: 16561バイト
圧縮後: 4789バイト
雑に4分の一弱の圧縮率。
圧縮率がこちらの方が倍程度高い理由は、おそらく、鍵、ID、署名なんかのバイト配列をバイナリにエンコードすれば配列長そのままのサイズだが、文字列にすると1byteが1byteの文字2つの2byteに膨れるので、そこいらに圧縮が効いた、ということではないかと推測。
というか、バッチで圧縮かければ、バイナリだろうとJSONテキストだろうと同じぐらいのサイズになるんだなw
うーむ。
#nostrp2p
Published at
2024-05-15 00:35:11Event JSON
{
"id": "685e44107e94059af3c1228e251382ec57a2e0e00400e372b9684045908b9f82",
"pubkey": "eb119234c467ac9d2ffea5b7284f3a74bd04287a12cfd58a22d19626434cddf2",
"created_at": 1715733311,
"kind": 1,
"tags": [
[
"e",
"39c60868bbb60a63382a29b1445d19395ac8eef7cc5c52d4c601d4acd2fc6f23",
"",
"root"
],
[
"p",
"eb119234c467ac9d2ffea5b7284f3a74bd04287a12cfd58a22d19626434cddf2"
],
[
"t",
"nostrp2p"
]
],
"content": "同じことをJSONテキストにシリアライズした場合でやってみた。\n(この時はgolangのライブラリ関数ではなく、7zipのgzip圧縮でやった。オプションは標準。圧縮の条件がバイナリの時と厳密には違う可能性あり)\n\n圧縮前: 16561バイト\n圧縮後: 4789バイト\n\n雑に4分の一弱の圧縮率。\n圧縮率がこちらの方が倍程度高い理由は、おそらく、鍵、ID、署名なんかのバイト配列をバイナリにエンコードすれば配列長そのままのサイズだが、文字列にすると1byteが1byteの文字2つの2byteに膨れるので、そこいらに圧縮が効いた、ということではないかと推測。\n\nというか、バッチで圧縮かければ、バイナリだろうとJSONテキストだろうと同じぐらいのサイズになるんだなw\n\nうーむ。\n\n#nostrp2p",
"sig": "75cdedc751b80c6eee26fafb2e8166063352161f3095a650a044caf2bf2997d926fc0527e1329d05df24120be1c6bd9295ea1218b96107dea237a8f4b7d071fc"
}