J'utilise un script qui s'exécute pendant plusieurs heures, qui imprime des instructions pour vérifier si des problèmes ont pu apparaître (données téléchargées sur le web, parfois déformées) .Effacement de la fenêtre de terminal en Python, mémoire/performance
J'ai remarqué une baisse significative des performances après un certain temps. Je soupçonne que les milliers de lignes de déclarations d'impression pourraient être la raison.
Il est bien connu que le terminal peut être effacé de ces états d'impression par la ligne de code suivante:
import os
os.system('cls') # for windows
encore, je pense que cela ne fait améliorer la vitesse d'exécution et que c'est simplement une amélioration perçue en raison du fait que l'écran est effacé. Est-ce vrai ou pas?
J'ai aussi considéré supprimer certaines déclarations d'impression avec le code suivant:
import sys
class NullWriter(object):
def write(self, arg):
pass
nullwrite = NullWriter()
oldstdout = sys.stdout
sys.stdout = oldstdout # enable output
print("text that I want to see")
sys.stdout = nullwrite # disable output
print("text I don't want to see")
Ma question: Comment puis-je améliorer les performances (vitesse) de mon script, étant donné que je veux encore voir le plus déclarations d'impression récentes?
Vous pouvez enregistrer la sortie dans un fichier, puis faire queue -f pour voir la sortie en streaming. –
s'il vous plaît corriger votre indentation – marcadian
oui, l'impression à l'écran ralentit votre programme s'il y a beaucoup de sortie. –