Öffnen/schließen-tags & performance?
Dies mag eine dumme Frage sein, aber als jemand, der relativ neu in PHP, ich Frage mich, ob es irgendwelche Probleme mit der Leistung zu Häufig öffnenden und schließenden PHP-tags in HTML-template-code, und wenn ja, was könnte sein, am besten Praktiken in der Zusammenarbeit mit PHP-tags?
Meine Frage ist nicht über die Wichtigkeit/Richtigkeit der schließenden tags, oder über welche Art von code ist besser lesbar als der andere, sondern darum, wie das Dokument wird geparst/ausgeführt wird und welche Auswirkungen es haben könnte, auf die Leistung.
Betrachten Sie zur illustration die folgenden zwei extremen:
Mischen von PHP-und HTML-tags:
<?php echo
'<tr>
<td>'.$variable1.'</td>
<td>'.$variable2.'</td>
<td>'.$variable3.'</td>
<td>'.$variable4.'</td>
<td>'.$variable5.'</td>
</tr>'
?>
//PHP tag opened once
Trennung von PHP und HTML-tags:
<tr>
<td><?php echo $variable1 ?></td>
<td><?php echo $variable2 ?></td>
<td><?php echo $variable3 ?></td>
<td><?php echo $variable4 ?></td>
<td><?php echo $variable5 ?></td>
</tr>
//PHP tag opened five times
Wäre daran interessiert zu hören, einige Ansichten, auch wenn es nur zu hören, dass es keinen Unterschied macht.
Dank.
Danke... ich bin zufällig arbeiten mit einem massiven html-Tabelle im moment und die Frage ist irgendwie starrte mich an... auch wenn es etwas theoretischer.
Off-topic-ish: verwenden Sie eine Schleife und ein array/iterator der Daten zum füllen der Tabelle.
sicher, ich bin damit einverstanden, aber das ist nicht immer praktisch. Entweder erfordert Akrobatik beim Holen der Daten aus der db, oder die HTML-Struktur nicht in einer Schleife sauber.
Ich denke die Lesbarkeit ist das wichtigste hier. Du wirst es nicht sehen, keine wesentliche Zunahme/Abnahme etwas so trivial, wie dieses.
InformationsquelleAutor Tom | 2010-03-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
3 einfache Regeln für Sie, es Recht zu erhalten:
Performance-Probleme sind sehr schwer zu verstehen. Es wird empfohlen, für die Neulinge nicht zu berücksichtigen. Denn Sie sind immer wieder beeindruckt von der Kleinigkeit, Dinge, und nicht, um zu sehen eine wirklich wichtige Dinge. Nur weil Mangel an Erfahrung.
Gleiche für Ihre Frage. Vorstellen, dass Sie jemals bekommen werde einige Unterschiede. Auch big one, sagen, eine Methode ist 2 mal schneller. Oh mein, 2 mal!!! Ich wähle es aus und optimiert die app gut, es läuft 50% schneller!
Falsch. Nicht 50%. Sie hatte noch nie feststellen oder sogar Messen diese Geschwindigkeit zu erhöhen. Denn Sie optimiert, ein Teil, dass nur 0,0001% der gesamten script-Laufzeit.
Als für die großen HTML-Tabellen, es dauert eine lange Zeit für die browser zu machen. Viel mehr als Sie nahm, um zu generieren.
Profiling ist ein key-word-in die performance-Welt. Kann man den Papierkorb alle performance-Frage im Zusammenhang mit, keine Zweifel, wenn es kein Wort "profiling" in.
Gleichzeitig profiling ist kein Hexenwerk. Ich ist nur die Messung der Laufzeit der verschiedenen Teile Ihres Skripts. Kann man mit einem profiler wie xdebug, oder auch manuell, mit
microtime(1)
. Und nur nach der Feststellung der langsamste Teil, Sie beginnen mit tests.Lernen zu Profil, bevor du Leistung Fragen.
Und lernen, nicht um zu bitten Leistung Fragen, wenn es keine wirklichen Gründe dafür.
Vorzeitige Optimierung ist die Wurzel allen übels - D. Knuth.
+1 für die Quotierung von Donald Knuth und +200 für die sehr aufschlussreiche Antwort.
Wann hat Col sagen, dass es schlecht war, der das Wort "benchmark"?? Klingt wie Sie sind, das Worte in den Mund, oder das verweisen auf etwas in der falschen Stelle.
warum ist das so hoch bewertet? Es nicht die Frage beantworten, in irgendeiner Form oder form. -1 von mir.
Die übliche Verwendung, die ich miterlebt habe: benchmarking bedeutet das irgendwie Messen oder ranking der insgesamt Leistung Stück code, um es im Vergleich zu alternativen Lösungen (wie das, was Amien getan hat, in seiner Antwort auf diese Frage unten), in der Erwägung, dass profiling bedeutet herausfinden, was
InformationsquelleAutor Your Common Sense
Habe ich wiederholt die tests mit 50.000 Zeilen und addiert die multi-echo-in-1-tag-Methode zu
duration1: 31.15542483 Sekunden
duration2: 30.23169804 Sekunden
duration3: 27.54640007 Sekunden
Nicht viel Unterschied zwischen dem original-2-Methoden, aber wie es aussieht ist ganz ein bisschen schneller mit weniger Verkettung @poke
Da ich bezweifle, dass werde ich brauchen, soviel Daten in 1 gehen, ich denke, ich werde weiterhin verwenden viele tags, code-Einrückung sieht einfach besser aus und "Quelle anzeigen" layout genauer
Sie sagen nicht, wie viele Zeiten haben Sie Sie ausführen.
Sehr interessant... vielen Dank für dies zu tun.
+1 Mesuring ist wichtig, wenn wir wollen zu optimieren. Wir oft erkennen, dass diese Art der Optimierung ist nutzlos.
Von den blicken von ihm, die ersten zwei Beispiele Ausgabe weit mehr Leerzeichen als das Letzte Beispiel. Das könnte der Grund für die höhere Laufzeit.
InformationsquelleAutor Amien
Können Sie einfach ignorieren, den Unterschied in der Leistung zwischen diesen beiden. Mit der heutigen modernen computing-Ressourcen, der Unterschied ist wirklich egal. Diese Art von print-to-screen-Sachen sind wirklich nicht zu befürchten. Es gibt Tonnen von anderen Sachen, die Sie sollten in Betracht ziehen, bevor.
Abgesehen davon, gibt es immer eine Debatte zwischen der besten performance und die Wartbarkeit des Codes. Sie können immer versuchen die beste Leistung erreichen. Stattdessen sollten Sie stets die Leistung betrifft, zusammen mit der Menge der Zeit, die Sie aufbringen müssen, um auf Sie zu verbessern.
InformationsquelleAutor pars
Code, der leicht zu übersetzen, um pseudo-code besser ist. Dies ist belegt durch die Beispiele oben. Mehr zu sagen?
Ich persönlich tun würde:
Einer technischen Erklärung darüber, wie der interpreter arbeitet und warum ein Weg schneller als ein anderer, ist irrelevant für einen Neuling. Am besten ist es einfach, die Regeln zu kennen die Faustregel:
Verwendung mehr tags, wenn das Gesamtergebnis ist einfacher. Zeitraum.
InformationsquelleAutor
Das eigentliche problem mit diesem ist, dass Speicher zu verwenden. String-Verkettung und die Masse echo-ing erhöhen können Speicherverbrauch exponentiell.
Wenn Sie spam-die php-Tags für deine code unlesbar wird.
Beste Lösung ist die Verwendung einer template-engine und vermeiden Sie das mischen von code und Präsentation.
InformationsquelleAutor Martien de Jong