Christoph Zurnieden: geschwindigkeit von for-Schleifen

Beitrag lesen

Hi,

Mir ist die Geschwindigkeit da mehr im Vordergrund.
Warum? Sollte das Programm nicht erstmal funktionieren?

Diese Philisophie sehen wir alle hier jeden Tag mit irgendwelchen Code, der zum Teil nicht mal von den Einzelnen nachvollzogen werden kann. Genaugenommen habe ich mal eben auch schnell was zusammengezimmert, wo mir Tom in https://forum.selfhtml.org/?t=98391&m=599837 und https://forum.selfhtml.org/?t=98391&m=599930 die Zähne gezogen hat; und das völlig zu recht. Dieses "erstmal funktionieren" ist nach meinem Geschmack keines Falls das, was man braucht.

Ich dachte eigentlich, das es genau das ist, was man braucht, denn die Alternative wäre "funktioniert erstmal nicht", denn entweder klappt es oder nicht; ein bischen schwanger gibt es nicht.
Zu dem Funktionieren gehört natürlich auch, das es in finiter Zeit abläuft, klar. Aber wie lang "finite Zeit" sein soll, muß _vorher_ bestimmt werden und vor allem _genau_. Wenn dann noch der letzte Fitz fehlen sollte, dann kannst Du nachschauen, wo's hängt, aber empfehlen würde ich da eher einen anderen Algorithmus zu suchen. Macht deutlich mehr Sinn als sich darum zu streiten, ob der minimale Overhead von PHPs syntactic sugar Karies verursacht.

Wenn dann noch Zeitist, kannst Du ja immer noch dran rumfeilen, aber die Zeit ist im Grunde nie da, die hast Du im Höchstfall bei privaten Projekten.

Hast Du schon mal den Code von einem Vorgänger durcharbeiten sollen?

Ja. Aber was hat das hiermit zu tun?

Was wenn ein Kunde mal die Kosten für ein Gutachten nicht scheut?

Wer macht das Gutachten und vor allem: worauf hin? Doch höchstens daraufhin, das die Vorgaben nicht eingehalten wurden und ob da Sicherheitsmängel zu finden sind. Was noch?

Diese Einstellung hat bei kleinen Leuten mit kleinem Budget Berechtigung.

Da schon mal überhaupt nicht. Das teuerste ist bei Softwareentwicklung Zeit und Microoptimierung frißt Zeit, die kannst Du stets anderweitig _viel_ gewinnbringender einsetzen.

Es gibt kein "extrasauberes" Coding, entweder ist das ordentlich oder schlampig.

Entweder Du widersprichst Dir hier, oder Du gibst zu, lieber schlampigen Code abzuliefern an dem man "immer noch dran rumfeilen [kann]".

Ach, Du möchtest beides? Sauberen _und_ geschwindigkeitsoptimierten Code? Das funktoniert nicht, da ist das Minimax-Gesetz gegen. Du kannst nur _entweder_ sauber schreiben _oder_ geschwindigkeitsoptimiert. Beides gleichzeitig geht nicht. (Auch wenn die Formulierung "geht nicht" mir fast schon körperliche Schmerzen bereitet ;-)
Wenn Du geschwindigkeitsmäßig noch signifikant etwas rausholen kannst (z.B. O(n*log(n)) statt O(n^2)) dann war der vorherige Algorithmus einfach _falsch_ und nicht bloß lahm.

Du kannst es Dir erlauben schlampig zu werden, wenn Du _genau_ weißt, was Du tust. Dieses "genau" sollte aber vorzugsweise bis runter zu den Opcodes gehen.

Dies abzustellen bin ich Stückweise dabei.

Was abstellen? Nicht mehr genau wissen zu müssen, was man tut? Ist zugleich eine sehr angehme als auch furchtbare Vorstellung.
Aber das meintest Du wohl nicht, oder?

so short

Christoph Zurnieden