Comment minimiser la taille d'un tableau d'entiers au format numérique ?Les tables à sauvegarder sont toutes des nombres entiers.
Merci!
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << delete columns( 1 :: 3 );
New Column( "A" );
Column( "A" ) << Formula( 1000 + Row() );
dt << run formulas;
Column( "A" ) << deleteFormula;
ScriptRe : Comment réduire la taille d'un tableau d'entiers au format numérique ?Réduire en mémoire ou sur disque ?
En mémoire : utilisez un format numérique court, numérique(1), numérique(2) ou numérique(4).Ceux-ci spécifient un entier signé du même nombre d'octets avec quelques valeurs réservées pour manquant. Ils sont tous plus petits qu'un double (8 octets) qui peut représenter des entiers jusqu'à ~ 50 bits ... une plage beaucoup plus large que la plage 8/16/32 bits. Économise également de l'espace sur le disque. (Je ne pense pas que ce soit nécessaire, mais un commentaire récent de la communauté a déclaré que la préférence pour les chiffres courts doit être activée pour les utiliser. Après avoir activé pref, regardez les types numériques disponibles lors de la création de colonnes et regardez le JSL qui est enregistré. Les plages sont d'environ +/-126, +/-32000, +/-2e9.)
Sur disque : utilisez la compression. Deux approches, soit utiliser le triangle rouge pour effectuer une compression de type zip de toutes les colonnes, soit utiliser l'utilitaire compress-columns qui regarde pour voir si la colonne a un nombre limité de valeurs qui pourraient être représentées comme une recherche. L'approche zip est lente lors de l'enregistrement, plus rapide lors de la décompression, mais pas aussi rapide que le chargement des données non compressées.
Vous pouvez utiliser un chiffre (1 ou 2 ou 4) et compressez le fichier à bon escient s'il y a encore une certaine redondance dans les données que zip peut extraire. Mais il est décompressé en mémoire, donc cela n'aide pas.
Re : Comment réduire la taille d'un tableau d'entiers au format numérique ?Merci Craig!
J'ai besoin de réduire la taille du fichier stocké sur le disque dur. Mais je ne sais pas comment faire cela avec JSL.
Re : Comment réduire la taille d'un tableau d'entiers au format numérique ?J'ai créé un fichier avec l'interface graphique, défini la colonne sur numérique (1) et utilisé le triangle rouge pour demander une compression sur le disque. Puis j'ai attrapé le script.
New Table( "Untitled",
Add Rows( 0 ),
Compress File When Saved( 1 ),
New Column( "Column 1", Numeric( 1 ), "Continuous", Set Selected )
)