On 2024-07-03 12:41, Hartmut Goebel <h.goe...@crazy-compilers.com> wrote: > Am 03.07.24 um 13:43 schrieb Peter J. Holzer: >> Ineffizient? > > Ja, denn wenn der String erst als ganzes formatiert wird, muss erstmal > der Speicher für den ganzen String alloziert werden, ehe der String > ausgegeben werden kann. > > Das mag von Pythons Speicher-Management abgefangen werden und auf > aktuellen Rechnern nicht messbar sein - trotzdem wird mehr Rechenzeit > und Speicher benötigt :-)
Wie gesagt, meine Tests ergeben, dass print("x", x) langsamer ist. Was auch immer print() da im Hintergrund macht, es braucht *mehr* Rechenzeit und möglicherweise auch mehr Speicher. Kontrafaktisch die ineffizientere Lösung mit der Begründung einer Effizienzsteigerung zu vertreten, hat zwar in der IT Tradition, aber es ist keine gute Tradition. Ich sehe Deinen Smiley, aber ich reite trotzdem darauf herum: Ich erlebe es immer wieder, dass Leute Programme auf Grund einer vagen Idee "optimieren", ohne vorher zu messen, ob das tatsächlich ein Bottleneck ist. Am Ende ist das Programm dann nicht schneller (vielleicht sogar langsamer), schlechter lesbar, und sie haben einen Haufen Arbeitszeit verschwendet. Wenn man wirklich optimieren möchte (und nicht nur Zeit totschlagen), dann muss man dort anfangen, wo am meisten Zeit aufgewendet wird. Daraus ergeben sich dann meistens Änderungen im Algorithmus. Oder gar - shockingly - die Erkenntnis, dass das bei Python der Interpreter selbst ist. Pypy statt CPython kann einen ordentlichen Performance-Boost bringen. Teile mit Cython zu kompilieren oder gar in einer anderen Programmiersprache zu implementieren noch mehr. An den Details einer Stringformatierung herumzudoktern ziemlich sicher nicht. hp _______________________________________________ python-de Mailingliste -- python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an python-de-le...@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: arch...@mail-archive.com