• [^] # Re: Saloperie de buffer

    Posté par . En réponse au message sys.stdout.write() avec python3 : pas d'écriture tant que pas EOL ?. Évalué à 3.

    C'est vrai que ça surprend (donc risque), mais d'un autre côté ici ça peut se comprendre un peu, parce que chez moi: (le premier avec autoflush et l'autre non)

     $ time perl -e '$|++;print "x" for 1..1000000; print "\n";'
     [plein de x]
     real 0m3.830s
     user 0m0.464s
     sys 0m1.470s
     $ time perl -e 'print "x" for 1..1000000; print "\n";'
     [plein de x]
     real 0m0.238s
     user 0m0.223s
     sys 0m0.011s
    
    

    donc la différence peut être quand même non négligeable, et comme la plupart du temps ça n'a pas de conséquences, on peut comprendre que ce soit le comportement par défaut.

    Ceci dit, dans l'exemple j'aurais pu créer la chaîne avec 1 000 000 de x directement et du coup les deux versions auraient été identiques, donc ce n'est pas vraiment un bon exemple.