Seite 1 von 1
Befehle ausblenden
Verfasst: 18.01.2005 12:32
von Gumfuzi
Hallo!
Eine generelle Frage:
Wenn ich bestimmte Codepassagen aus der PHP-Datei deaktivieren will, welche Metode ist "schneller" bei späterem Aufruf der Datei?
- Code-Zeilen komplett entfernen oder
- Code-Zeilen mit // oder /* deaktivieren
Mein Hintergedanke ist der, daß, wenn ich die zweite Variante wähle, die PHP-Datei genauso lang ist bzw. die Codezeilen trotzdem "gelesen" (aber nicht ausgeführt) werden, was ja auch minimal Zeit beansprucht.
Mit der 2. Variante hätte ich dann aber den Code wieder zur Verfügung, falls ich den wieder brauche.
Wie seht ihr das?
Verfasst: 18.01.2005 12:38
von mr.no-name
Naja, ich glaube kaum, dass Variante 2 ein spürbarer Nachteil ist. Die Dateien sind so klein, dass es ein 2-3 GHz Server wohl kaum merkt, ob sie nun 10,1 oder 10,2 KB groß ist^^
Aber wenn du die Datei sicherst, was man ja immer tun sollte, geht natürlich auch Variante 1
Verfasst: 18.01.2005 12:45
von Blutgerinsel
mr.no-name hat geschrieben:Naja, ich glaube kaum, dass Variante 2 ein spürbarer Nachteil ist. Die Dateien sind so klein, dass es ein 2-3 GHz Server wohl kaum merkt, ob sie nun 10,1 oder 10,2 KB groß ist^^
ein || kein ?
Da der PHP Parser Kommentare einfach überspringt anstatt diese zu lesen entsteht hieraus kein zeitlicher Nachteil.....
Verfasst: 18.01.2005 12:52
von mr.no-name
Blutgerinsel hat geschrieben:mr.no-name hat geschrieben:Naja, ich glaube kaum, dass Variante 2 ein spürbarer Nachteil ist. Die Dateien sind so klein, dass es ein 2-3 GHz Server wohl kaum merkt, ob sie nun 10,1 oder 10,2 KB groß ist^^
ein || kein ?
Da der PHP Parser Kommentare einfach überspringt anstatt diese zu lesen entsteht hieraus kein zeitlicher Nachteil.....
Sry, ich meinte wirklich "ein", da ich davon ausgegangen war, dass Gumfuzis Annahme stimmt

Wenn es aber direkt übersprungen wird ist es sogar "kein" Nachteil^^ (höchstens für den Speicherplatz auf dem Server *g*)
Verfasst: 18.01.2005 12:56
von Gumfuzi
@Blutgerinsel:
danke, genau das wollte ich wissen!
Aber:
wie ist es beim /* ?
da müsste der Parser doch nach dem Gegenstück suchen sprich den Code trotzdem lesen - wäre es dann besser, jede Zeile mit einem // beginnen zu lassen, denn danach wird ja der Rest der Zeile ignoriert und auch nicht gelesen?
P.S.: mit geht es eher darum, wenn zB. viele Codezeilen ausgeblendet werden, bei einer Datei, die sehr oft aufgerufen wird - da würden sich ein paar Millisekunden auch summieren...
Verfasst: 18.01.2005 13:11
von itst
Ich kenne den PHP-Quellcode nicht, aber wahrscheinlich hat PHP eine Art Preprocessor (ich sagte
eine Art, nicht
einen), der Kommentare (alles nach // oder # und alles zwischen /* und */) per RegExp vor der Weitergabe der Datei an den eigentlichen Parser entfernt.
Ob es bei normalen Skripten einen meßbaren Unterschied gibt, wage ich zu beweifeln

Verfasst: 18.01.2005 13:18
von Blutgerinsel
Gumfuzi hat geschrieben:@Blutgerinsel:
Aber:
wie ist es beim /* ?
da müsste der Parser doch nach dem Gegenstück suchen sprich den Code trotzdem lesen - wäre es dann besser, jede Zeile mit einem // beginnen zu lassen, denn danach wird ja der Rest der Zeile ignoriert und auch nicht gelesen?
P.S.: mit geht es eher darum, wenn zB. viele Codezeilen ausgeblendet werden, bei einer Datei, die sehr oft aufgerufen wird - da würden sich ein paar Millisekunden auch summieren...
Der sehr geringe zeitliche Abstand der bei Leerzeichen oder Kommentare entsteht ist so unwesentlich das man ihn vergessen kann
Bevor man sich Gedanken über derartiges macht sollte man lieber vorher das Script optimieren und versuchen den Code so einfach und effektiv zu gestalten das er einen minimalen RAM bedarf und Laufzeit benötigt. Das fängt schon bei nicht Verwendung von Referenzen an usw.......
Kommentare tragen in jeder Programmiersprache dazu bei Codeblöcke zu Diagnosezwecke temporär auszuhebeln oder der Nachwelt und sich selber sofort einen Anhaltspunkt bzw. Erinnerungspunkt zu legen der es erlaubt den Code bei erneuter Betrachtung schneller richtig deuten zu können bzw. ausstehenden Funktionalitäten festzuhalten.......
Dabei ist das Motto weniger ist oft mehr........
Auch die PHP Newsgroup ist der gleichen Ansicht wie ich gerade entnommen habe:
->
http://faq-php.de/q/q-stil-kommentare.html
Verfasst: 18.01.2005 13:28
von Blutgerinsel
@Itst: manchmal zahlt es sich aus den PHP Code zu betrachten, mich hat z.B. interessiert ob ein mysql_num_rows tatsächlich komplett die Zeilen wieder aufbereitet. Manche Entwickler behaupten Count sei immer einem mysql_num_rows vorzuziehen (hab ich auch immer gedacht), andere wiederrum verneinen das......
Und wenn man sich mal die Ressource ID näher anschaut
Code: Alles auswählen
typedef struct st_mysql_res {
my_ulonglong row_count;
MYSQL_FIELD *fields;
MYSQL_DATA *data;
MYSQL_ROWS *data_cursor;
unsigned long *lengths; /* column lengths of current row */
MYSQL *handle; /* for unbuffered reads */
MEM_ROOT field_alloc;
unsigned int field_count, current_field;
MYSQL_ROW row; /* If unbuffered read */
MYSQL_ROW current_row; /* buffer to current row */
my_bool eof; /* Used by mysql_fetch_row */
} MYSQL_RES;
Und den Fokus auf die 2. Zeile setzt müsste der Zweifel beseitigt sein......
Verfasst: 18.01.2005 17:13
von Gumfuzi
Super, danke für die Erklärung!!!!!!!