Beeinflussen Variablennamen die Leistung von Websites?

11

Beeinflussen Variablennamen die Leistung der Website? Ich weiß, dass dies eine sehr niedrige Zahl sein wird, aber kann dennoch jemand die Gründe dafür angeben, dass in Bezug auf die Leistung kein langer Variablenname gewählt wurde?

Avinash
quelle
2
Bitte klären Sie Ihre Frage - wo ist diese Variable und in welcher Sprache ist sie geschrieben?
Luke Graham
15
Sie sollten NIEMALS kurze und unlogische Variablennamen wählen, wenn Ihre Argumentation (fragwürdige) Leistung ist. Der Quellcode kann von anderen Personen gelesen werden, nicht von Computern und deren mikroskopischen Leistungssteigerungen.
Michael JV
Ich benutze PHP ..
Avinash
1
... und Sie besitzen xpertdeveloper.com?
Jim G.
3
Hallo Avinash, kannst du in deiner Frage deine Gründe für den Gedanken erklären, dass dies der Fall sein könnte?

Antworten:

16

Nein es wird nicht. Im Allgemeinen werden beim Kompilieren von Code die Variablennamen durch die Speicheradresse ersetzt, auf die sie sich beziehen. Computer wissen nichts über Variablennamen. Sie wollen nur wissen, wo Werte gespeichert sind.

Variablen sind Symbole, nichts weiter. Sie ersetzen Hex-Werte durch Namen, damit Programmierer leichter verstehen, was sie tun. Durch die Auswahl kürzerer Variablennamen wird also keine Leistungssteigerung erzielt.

Das heißt, Sie erhalten möglicherweise winzige (und ich spreche von mikroskopischen) Verbesserungen der Kompilierungszeiten und der ersten JIT-Interpretation, aber das liegt nur daran, dass der Parser einige CPU-Zyklen weniger benötigt, um den Variablennamen zu lesen. Dies ist ein einmaliger Kostenfaktor und statistisch unbedeutend, wenn Sie sich um die Leistung sorgen.

Michael K.
quelle
11
Während Ihre Antwort für die Anwendungsprogrammierung korrekt ist, bezieht sich das OP auf Websites, und daher besteht die Möglichkeit, dass er eine interpretierte Sprache verwendet. In einem solchen Fall müsste der Code aus der Datei eingelesen und dann interpretiert werden. In diesem Fall dauert das Laden und Parsen eines längeren Variablennamens länger. Der Leistungsgewinn wird jedoch unbedeutend sein und durch den zusätzlichen Aufwand für den Programmierer, den Code zu lesen und zu verstehen, massiv ausgeglichen.
Gavin Coates
1
@ Gavin Es ist auch für interpretierte Sprachen korrekt - "JIT erste Interpretation". Die meisten interpretierten Sprachen werden jetzt kompiliert, da sie AFAIK und nicht zeilenweise ausführen.
Michael K
1
Michael - Zum Kompilieren muss die Datei zuerst in den Speicher eingelesen werden. Dieser Vorgang dauert je nach Länge der Datei länger. Längere Variablennamen = längere Dateien.
Gavin Coates
16

Kann jemand die Gründe dafür angeben, dass in Bezug auf die Leistung kein langer Variablenname gewählt wurde?

Michael behandelte die Antwort (dh Nein), aber Variablennamen wirken sich auf die Leistung des Programmierers aus . Wenn Sie einen neuen Entwickler oder jemanden hinzuziehen, der mit dem Code nicht vertraut ist, können lange und / oder verwirrende Variablennamen ablenken und den Verständnisprozess verlangsamen.

Im Allgemeinen möchten Sie kurze, beschreibende Variablennamen verwenden, da diese leichter zu lesen sind. Stellen Sie sich vor, Sie müssen Ihren Code 10 Jahre lang ignorieren und dann alles wieder verstehen. Möchten Sie lieber "getInput" oder "getInputFromUserWhoInputsStringOrElseInformReaderOfError" lesen? (Übertreibung natürlich: P)

Es gibt jedoch Zeiten, in denen ein etwas längerer Name von Vorteil sein kann. Zum Beispiel wäre getBirthdayInput () viel aussagekräftiger als getInput (). Sie möchten bis zu einem gewissen Punkt vereinfachen, aber eine zu starke Vereinfachung kann auch problematisch sein.

BlackJack
quelle
6
Wenn Sie "getInputFromUserWhoInputsStringOrElseInformReaderOfError" finden, müssen Sie die Dokumentation dieser Funktion nicht lesen, wenn Sie "getInput" finden, das Sie benötigen. Und nach 10 Jahren ist die Dokumentation falsch oder unvollständig oder fehlt. getInputFromUserWhoInputsStringOrElseInformReaderOfError ist sicherlich zu lang, aber zu verstehen, was lang ist, ist besser (und es ist mir egal, dass Frauen sagen, dass Größe keine Rolle spielt).
Dainius
Ich bin in diesem Fall nicht einverstanden. Ich denke, nur durch das Lesen von Code wäre es ziemlich einfach zu verstehen, was getInput () tut, besonders wenn es "ungültige Eingabe" oder etwas direkt danach druckt. Es gibt definitiv Zeiten, in denen ein längerer Name besser sein kann - ich werde ihn bearbeiten!
BlackJack
ofc hängt vom Kontext ab, aber meiner Erfahrung nach ist ein längerer Name besser (aber nicht solange getInputFromUserWhoInputsStringOrElseInformReaderOfError). Und der Kontext ist wirklich wichtig, da file.read () schneller ist als file.readAllFileAsByteArray (). Aber wie gesagt normalerweise IMHO längerer Name liefert mehr Informationen.
Dainius
1
Wenn die Dokumentation falsch ist, unvollständig ist oder fehlt, ist die Codebasis trotzdem zum Scheitern verurteilt.
Christopher Mahan
2
Dies beantwortet eine Frage, die nicht gestellt wurde.
7

Wenn Sie keinen Op-Code-Cache verwenden (auch als "PHP-Beschleuniger" bezeichnet), gibt es tatsächlich Auswirkungen. Diese Auswirkungen sind jedoch so gering, dass sie vernachlässigt werden können. Wenn Sie den Op-Code-Cache verwenden, hat dies keine Auswirkungen.

vartec
quelle
1
und wenn Sie sich so sehr für die Leistung interessieren, dass Sie erwägen, Variablennamen zu verkürzen, um einige Zyklen zu erhalten, wäre es kriminell, keinen Op-Code-Cache zu verwenden ... und es würde empfohlen, zu einer kompilierten Sprache wie C zu wechseln.
SF.
Aber offensichtlich ist diese Auswirkung akkumulativ. Je größer die Anwendung, desto größer die Auswirkung, oder?
n00dles
3

Während Michael für die Anwendungsprogrammierung korrekt ist, bezieht sich Ihre Frage auf die Webentwicklung mit PHP, einer interpretierten Sprache. In einem solchen Fall müsste der Code aus der Datei eingelesen und dann interpretiert werden. In diesem Fall dauert das Laden und Parsen eines längeren Variablennamens länger.

Der damit verbundene Leistungseinbruch wird jedoch unbedeutend sein und wahrscheinlich für einen gesamten Skript im Bereich von Bruchteilen einer Millisekunde liegen. Sie können es jederzeit mit einem Beispielskript ausprobieren und eine Timing-Methode wie die unter http://www.developerfusion.com/code/2058/determine-execution-time-in-php/ beschriebene verwenden. Dies ist jedoch wahrscheinlich nicht der Fall Starten Sie das Timing, bis die Datei eingelesen wurde. Außerdem variiert die Ausführungszeit zwischen den Wiederholungsversuchen erheblich mehr als die Differenz zwischen den variablen Namenslängen. Sie müssen daher eine erhebliche Anzahl von Wiederholungsversuchen durchführen und den Durchschnitt der einzelnen Versuche ermitteln, bevor Sie dies tun können Erhalten Sie einen entfernt aussagekräftigen Durchschnitt.

Wie BlackJack hervorhebt, können längere Namen viel schwieriger zu verstehen sein und erfordern viel zusätzlichen Aufwand beim Tippen (und sind viel anfälliger für Tippfehler). Es kann zwar zu einem winzigen Leistungsgewinn kommen, dies rechtfertigt jedoch nicht den zusätzlichen Aufwand, der für den Programmierer entsteht. Daher werden kurze, präzise und leicht verständliche Variablennamen bevorzugt.

Kurz gesagt, machen Sie sich keine Sorgen über den Namen mit variabler Länge, sondern konzentrieren Sie sich darauf, sauberen, aussagekräftigen Code zu schreiben.

Gavin Coates
quelle
1

Vielleicht :

Servercode wird normalerweise kompiliert und die Länge des Variablennamens hat aus den genannten Gründen keinen Einfluss darauf. Wenn der Variablenname jedoch zum Erstellen von Markups verwendet wird, werden verschiedene Zeichenfolgenoperationen ausgeführt. Da die HTTP-Antwort (die Markup / zurückgegebene JSON / zurückgegebene Daten enthält) größer ist, dauert sie etwas länger, obwohl der Unterschied vernachlässigbar ist. Wenn JavaScript nicht minimiert wird, handelt es sich um eine größere Datei, deren Übertragung zum Client länger dauert.

Abgesehen von der Minimierung von JavaScript-Dateien werden Optimierungsbemühungen für eine Webanwendung / Website besser für andere Aspekte aufgewendet.

StuperUser
quelle
1

Ja, aber nicht in dem Sinne, an den Sie denken.

Bei schlechten Variablennamen werden Entwickler im Quellcode leicht verwirrt. Es wird schwer zu lesen und schwer zu verstehen sein.

Am Ende wird der Quellcode schwer zu pflegen sein und es wird fast unmöglich sein, ihn weiterzuentwickeln. Dies führt zwangsläufig zu höheren Wartungskosten, höheren Entwicklungskosten, mehr Fehlern und schlechteren Leistungen .

Der Variablenname hat zur Laufzeit absolut keinen Einfluss und ist zur Kompilierungszeit völlig vernachlässigbar. Aber schlechte Namen führen unweigerlich zu einer schlechten Leistung, da niemand den Code versteht und er in einem Stapel von Hacks übereinander endet, was die Situation jedes Mal verschlimmert.

Lesen Sie diese, um mehr über den guten Variablennamen zu erfahren: http://tottinge.blogsome.com/meaningfulnames

Beachten Sie, dass Ihr Code schlecht strukturiert ist, wenn Sie einen sehr langen Variablennamen benötigen. Ein Variablenname wird immer in einem Kontext ausgedrückt: Namespace, Klassenname, Dateiname, Ordner, Funktionsname usw. Wenn der Name also lang sein muss, um explizit zu sein, bedeutet dies, dass das, was Sie benennen möchten, DOESN ' T HIER GEHÖREN . Denken Sie in diesem Fall daran, diesen Code an der entsprechenden Stelle abzulegen, oder erstellen Sie diesen Ort, falls er noch nicht vorhanden ist.

deadalnix
quelle