Problème :
Encodage des chaînes dans les entrées clé/valeur sur le disque à l'aide l'encodage/gob entraîne un gonflement excessif en raison d'une surcharge inutile. Le format de sortie souhaité omet les définitions de type et inclut uniquement les octets bruts et les longueurs de chaîne.
Analyse :
La surcharge initiale dans l'encodage/gob provient de l'inclusion du type définitions dans le flux codé. Une fois ces définitions transmises, les valeurs suivantes du même type n'entraînent qu'une surcharge minimale, ce qui la rend efficace pour encoder plusieurs valeurs.
Solution :
Pour éliminer le gonflement inutile , le package encoding/gob ne doit pas être utilisé. Envisagez plutôt les options suivantes :
Démonstration :
Le tableau suivant compare la taille encodée par entrée en utilisant différents méthodes :
Method | Encoded Size (Bytes) | Compression Ratio |
---|---|---|
Naked Output | 16.04 | 100% |
Flate | 4.12 | 26% |
Zlib | 4.13 | 26% |
Gzip | 4.14 | 26% |
Bzip2 | 2.04 | 12.7% |
Recommandation :
Dans la plupart des scénarios pratiques, l'utilisation de compress/gzip ou compress/zlib offre un bon équilibre entre le taux de compression et les performances. Cependant, si la contrainte d'espace disque est extrêmement stricte, envisagez d'utiliser bzip2 pour ses capacités de compression supérieures au prix d'une efficacité légèrement réduite.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!