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.
[^] # Re: Saloperie de buffer
Posté par anaseto . 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)
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.