Mailinglisten-Archive |
Hi Thomas,
On Tue, Oct 21, 2003 at 05:41:41PM +0200, Thomas Langfeld wrote:
> > > Die Lösung $new = preg_replace('/\r\n|\r|\n/', '<br>', $string);
> > > von Thomas Langfeld ist IMHO das optimum.
> >
> > Eine Lösung ist es, aber mich würde interessieren inwiefern diese
> > Lösung das Optimum darstellt.
> >
> > Ich behaupte, dass folgendes bezüglich Performance ca. ein Fünftel
> > der Zeit benötigt:
> >
> > $txt = str_replace ('\r\n', '\n', $txt);
> > $txt = str_replace ('\r', '\n', $txt);
> >
> > $txt = str_replace ('\n', '<br>', $txt);
>
> Hmm, Behauptungen interessieren aber solange nicht, bis sie bewiesen, oder
> wenigstens durch Tests untermauert wurden.
Stimmmt. War auch provokativ formuliert.
Natürlich habe ich es vorher getestet. Und zwar mit dem
max_Loadchecker
http://phpresource.partners.phpclasses.org/browse.html/package/85
Und mit folgendem Skript:
<?php
include ("/var/www/max/LoadChecker.inc");
$Clock = new max_LoadChecker;
function txt2html($txt)
{
$txt = preg_replace('/\r\n|\r|\n/', '<br>\n', $txt);
return $txt;
}
function txt2html2($txt)
{
$txt = str_replace ('\r\n', '\n', $txt);
$txt = str_replace ('\r', '\n', $txt);
$txt = str_replace ('\n', '<br>\n', $txt);
return $txt;
}
$text = '<b>ADULTE:</b>
Aphonopelma seemani (Weibchen)
<b>SPIDERLINGE:</b>
Avicularia geroldi
Brachypelma albopilosum
Brachypelma smithi
Grammostola rosea
Lasiodora klugi
Lasiodora parahybana
Psalmopoeus irminia
<b>SONSTIGES:</b>
Aufzuchtfaunaboxen für Spiderlinge
--------------------------------------------------------
Beschreibungen, Bilder und Preise unter
<b>www.vs-planet.de</b> (Tiere abzugeben)
';
$Clock->Set('Title', __LINE__);
for ($i=0;$i<10;$i++) {
$formatiert = txt2html ($text);
}
$Clock->Set('txt2html', __LINE__);
for ($i=0;$i<10;$i++) {
$formatiert2 = txt2html2 ($text);
}
$Clock->Set('txt2html2', __LINE__);
$Clock->MaxLoad ("3", "new");
?>
> Also: Testen und dann Ergebnisse her.
Die Ergebnisse schwanken zwischen Faktor fünf und Faktor 30 zugunsten
str_replace.
> BTW:
> Ich wiederum wage mal zu behaupten, dass ein etwaiger Performace-Unterschied
> erst ab einer bestimmen Textlänge (einer SEHR großen Textmenge) überhaupt
> erst spürbar wird.
Und bei vielen Seitenaufrufen.
> Und wenn ich die Wahl habe zwischen einem 3-Zeiler, der vielleicht im
> Hinteren-Nachkomma-Tausendstel-Mili-Sekunden-Bereich schneller ist und einem
> Einzeiler, um ein Problem zu lösen, brauche ich wirklich nicht lange zu
> überlegen ...
Ich auch nicht. Könnte aber sein, dass meine Überlegungen zu einer
anderen Entscheidung führen. ;-)
Grüße,
Martin
php::bar PHP Wiki - Listenarchive