Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

base64のデータならデコードしてから圧縮をかけた方が高効率……らしい

通信上の止ん事無き事情により、base64でデータが送られてくる事があります。
これをそのまま圧縮するのと、デコードしてから圧縮するのとでは結構なファイル量の違いがでてくる……って話です。

実際のところ

345バイトのこんなデータ

ZmNiYWNma3F5gYqSmqCkpqenpKGdmJONiIN/e3d1c3FxcXFxcnN0dXZ3eXp7fHx9fn5/gIGDhISFhYWFhIOCgYGAgICBgoOEhYeIiYmJiYiGhIF+fHl3dHNyc3N1d3p9gIOGiYuMjY2NjIuKiIeFg4GAfnx7eXl4eHl5enx9fn5/gICAgYGBgYGBgYGBgoKDhISEhISEhIOCgoGAgH9/fn5+fn5/gICAgICAgICAgICAgICAf39/gICBgoOFhoeIiIiIiIeGhYOCgH99fHt6enp6e3x9foCAgoKDg4ODgoKBgH59fHt7e3t8fX5/gIKDhIWFhoaGhoaFhISDgoKBgQ==

そのまんま圧縮

$ cat data.log | gzip -f - > data.gz
$ ls -la data.gz
-rw-r--r--  1 shuzo_kino  staff  263  4 22 21:55 data.gz

デコードしてから圧縮

$ cat data.log  | base64 -d | gzip -9 - > data.gz
$ ls -la data.gz
-rw-r--r--  1 shuzo_kino  staff  188  4 22 22:02 data.gz

参考もと

stackoverflow.com