Pour gagner un peu de place mémoire je voudrais utiliser des variables qui sont des chaînes d'au plus 4 caractères. Peut-on indiquer cela à Python ?
Pour gagner un peu de place mémoire je voudrais utiliser des variables qui sont des chaînes d'au plus 4 caractères. Peut-on indiquer cela à Python ?
Je ne sais pas comment Python stocke les strings en interne, donc je n'extrapolerai pas là dessus, mais il y a fort à croire que tu ne perdras pas énormément de place à utiliser des strings standards.
Commence par t'assurer que la chaine est gardée en ascii, si tu es sous Python 3 et si les caractères qu'elle contient le permettent.
Si vraiment tu veux minimiser l'espace utilisé, au dépend du temps de calcul, tu peux toujours utiliser le module struct. Ca évite de dupliquer certaines choses nécéssaires pour chaque variable, en n'en faisant qu'une.
Attention toujours à l'unicode sous Python 3.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 >>> struct.pack("4s4s4s4s", "One1", "Two2", "Three", "Four") 'One1Two2ThreFour' >>> # Ou meme tout betement... ... >>> "One\0" + "Two\0" + "Thre"
Note: à l'heure des machines avec 2Go de ram, est-il réellement utile de faire des économies de 200 octets ?
Note bis: si vraiment il te faut faire des économies, code ça en C. Là tu contrôles vraiment tout. Sans compter que chaque variable de Python contient des pointeurs et autres, ça fait donc pas mal de mémoire en plus.
Comme vous n'avez pas précisé le 'pourquoi'... (enfin économiser la mémoire de nos jours n'est plus la préoccupation première et si c'est le cas, pourquoi utiliser Python??)
- W
Je vais faire avec un long string. Merci.
PS : mon appli. n'aura pas a priori de problème de mémoire, c'est juste dommage d'utiliser de la place pour rien.
Partager