function loadStage($var,$tpl){ $start = strpos($tpl,"<mb:$var>") + strlen("<mb:$var>"); $end = strpos($tpl,"</mb:$var>"); return substr($tpl,$start,$end-$start); }
Azt hiszem, ezzel picit könnyebb lesz egy pár dolog. (A sebesség már más kérdés, azzal még valamit csinálni kell, de azért 0,4 fölé ritkán megy.)
Maerlyn
2006. december 10. — 12:37:04
Hát, én nem értem. Valami template rendszer eleme? Legalábbis erre utal a tpl~template és a mb~mefiblog.
Mefi
2006. december 10. — 13:06:59
Igen. Ismétlődés céljából készült, pl.:
Az részt ismétli. 🙂
Benjamin
2006. december 10. — 14:05:40
PHP4 alatt tobb mint 2x gyorsulast erhetsz el (20e futtatas):
loadstage1: 0.68044686317444
loadstage2: 0.29502201080322
PHP5 alatt mar gyorsabb az 1. verzio is:
loadstage1: 0.351003170013
loadstage2: 0.189798116684
jah es a loadstage2:
function loadStage2($var, $tpl){‘) + strlen(‘‘); ‘);
$start = strpos($tpl, ‘
$end = strpos($tpl, ‘
return substr($tpl, $start, $end – $start);
}
Atlathatobb, gyorsabb kod 🙂
Mefi
2006. december 10. — 14:17:42
Persze, a lassulással tisztában vagyok, de nagyjából minden sablonrendszer ezzel jár. 🙂 (A végleges kód pedig nem így néz ki, ez csak a blogba készült, ott a változókat egyébként is máshogyan kezeli, de köszi az észrevételt!)
Mefi
2006. december 10. — 14:20:17
Jah, és inkább ““, tudtommal az idézőjel egy fokkal a hiányjelnél is gyorsabb. 🙂
Benjamin
2006. december 10. — 14:24:21
A ” idezojel azert “lassab” mert ott a PHP engine valtozokat is keres a szovegben, mint ahogy az eredeti fv.-ben irtad => ezert lassabb. Viszont a ‘ (szimpla idezojel) -ben nem keres semmit hanem egybol kiirja.
Megneztem az altalam irt kodot ” es ‘ jelekkel is, valtozo h. melyik gyorsabb, viszont PHP5-ben mintha a ” -t jobban szeretne… fura.
Vale
2006. december 10. — 14:32:47
mert azon a két ezredmásodpercen már sok múlik… tovább tart a böngészőnek bedolgozni a sok-sok sor csst…
Mefi
2006. december 10. — 14:43:19
[re=21721]Benjamin[/re]: én több helyen is olvastam, hogy az ” idézőjelek gyorsabbak, bár abban is van valami, amit te mondasz.
[re=21723]Vale[/re]: persze, egy ezredmásodperc nem sok, csak ne felejtsd el, hogy ez a függvény nem egyszer, hanem lehet, hogy kétszázszor fog lefutni, míg megkapod a kész HTML-t. Az pedig már sok lehet.
Benjamin
2006. december 10. — 15:00:03
[re=21723]Vale[/re]: ebben az esetben is igaz a sok kicsi sokra megy… ha 10 latogatod van, akkor valoban mindegy de ha ozonlenek a userek mindent be kell vetned. Egyebkent nem ezred hanem tized masodpercekben merheto amit irtam!
Jobb ha ezeket mar alapbol igy csinalja az ember es akkor eles kornyezetben mar nem kell ilyenekkel szoszmotolni h. atirod az egesz kodod: “ido:$date” -> “ido:”.$date -re, hanem foglalkozhatsz erdekesebb tuningolasi dolgokkal.
Mefi
2006. december 10. — 15:07:01
Mondjuk a sok str_replace időbe telik. ( http://mefi.be/ize/ )
Shamalt
2006. december 10. — 15:09:57
adott esetben amit megnyersz azzal, hogy a teljesen vegigparse-olando “ido: $ido” helyett hasznalod a concat-ot es ‘ido’ . $ido -t irsz, azt elvesztheted magaval az osszefuzessel.
Mefi
2006. december 10. — 15:15:27
Ez meg a másik. Meg ahol lehet, ott illik számmal dolgozni.
Benjamin
2006. december 10. — 15:49:30
[re=21727]Shamalt[/re]: erre gondolsz:?
$str = “1:$a 2:$b 3:$c 4:$d 5:$e 6:$f”;
vs.
$str = ‘1:’.$a.’ 2:’.$b.’ 3:’.$c.’ 4:’.$d.’ 5:’.$e.’ 6:’.$f;
egy string osszefuzes kenterbe fogja verni a stringen beluli valtozokeresest es ertek behelyettesitest, tehat a sebessege tovabbra is 2x gyorsabb
Shamalt
2006. december 10. — 15:51:31
vagy nem. mertem en mar gyorsabbnak is, lassabbnak is.
Mefi
2006. december 10. — 15:55:18
Én általában gyorsabbnak tapasztalom a “” használatát.
Benjamin
2006. december 10. — 15:57:18
[re=21732]Shamalt[/re]: nehezen tudom elkepzelni, csak valami nagyon specialis eset lehetett… tudod reprodukalni?
Shamalt
2006. december 10. — 16:00:21
nem, regebbi meres, es oszinten szolva mar arra sem emlekszem, hogy mivel kapcsolatban mertem.
Benjamin
2006. december 10. — 16:03:03
http://www.whenpenguinsattack.com/2006/07/05/php-optimization-myths/
http://www.blueshoes.org/en/developer/php_bench/
utobbin van par egyeb mas erdekesseg is
Shamalt
2006. december 10. — 16:11:52
mindenhol az elhanyagolhato szot hasznaljak a kulonbsegre.
egyebkent pedig szerintem, nem feltetlenul ez a resze az a kodnak, amin oriasi sebessegnovekedeseket lehetne kicsirkarni. 🙂
Mefi
2006. december 10. — 16:19:25
Inkább az adatbázissal való kommunikációból, meg ciklusokból.
Vale
2006. december 12. — 21:23:26
gyors lekérések, gyors függvények, osztályok (adott esetben), és már kész is a gyors kód.
Mefi
2006. december 12. — 22:26:29
Igen, de ha egy oldalgenerálásnál hozzávetőleg negyvenszer cserélsz le $valamire, akkor már ugrott a gyors kód. Mert a ciklusok és a szövegfüggvények azok, amik lassítanak, a kverik után.