login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Wat gaat snelst parsen?

Offline Voldemort - 16/02/2006 10:47 (laatste wijziging 16/02/2006 10:47)
Avatar van VoldemortPHP ver gevorderde Wat gaat er snelst parsen:

Echo of print?
Dubbel of enkele quotes (zowel bij html als bij PHP)?

29 antwoorden

Gesponsorde links
Offline vinTage - 16/02/2006 10:53 (laatste wijziging 16/02/2006 10:53)
Avatar van vinTage Nieuw lid leest wel rottig ^^

die link staat gewoon op php.net/echo

Offline Voldemort - 16/02/2006 10:56
Avatar van Voldemort PHP ver gevorderde Is wel weer engels .
Offline vinTage - 16/02/2006 10:57 (laatste wijziging 16/02/2006 11:07)
Avatar van vinTage Nieuw lid jah, php is ook engels, dus het lijkt me intresant om jezelf daar eens in te verdiepen..

Er is een verschil tussen de twee, maar qua snelheid zou het niks moeten uitmaken welke functie je gebruikt.
print() gedraagd zich als een functie waarmee je $ret = print "Hello World"; en $ret is dan 1.
Dat betekend dat print() gebruikt kan worden als een stuk van een meer complexe expressie waar echo() achterblijft.

echo is veel sneller omdat die geen return waardes maakt (als je zout op de slakken wilt leggen)


meest intresante stukje vertaald
Offline Voldemort - 16/02/2006 11:03 (laatste wijziging 16/02/2006 11:10)
Avatar van Voldemort PHP ver gevorderde Maar ik lees iets als ingewikkelde structuren, wat bedoelen ze daar nu weer met . Een echo en een print geeft gewoon wat weer, dus zo'n ingewikkelde structuur is dat toch niet?

Edit: Echo is dus eigenlijk iets sneller dan print hoewel het amper merkbaar is.

En die quotes, welke gaat snelst, de enkele of dubbele?
Offline vinTage - 16/02/2006 11:09
Avatar van vinTage Nieuw lid Ik zet er geen geld op, maar ik hoor altijd dat enkele quotes sneller parsed
Offline Voldemort - 16/02/2006 11:10
Avatar van Voldemort PHP ver gevorderde In HTML of in PHP?
Offline vinTage - 16/02/2006 11:12
Avatar van vinTage Nieuw lid html word geparsed door je php he, dus lijkt het me logish dat je enkele gebruikt (als je het over mierenneuken hebt)
Offline Voldemort - 16/02/2006 11:16
Avatar van Voldemort PHP ver gevorderde dus

echo 'iets'; gaat sneller dan echo "iets";

Maar als ik html buiten PHP haal, wat gaat die snelst doen, enkele of dubbele (html code)?
Offline vinTage - 16/02/2006 11:22 (laatste wijziging 16/02/2006 12:12)
Avatar van vinTage Nieuw lid Dit maakt volgens mij echt geen ene moer uit, maar als het al iets zou uitmaken, dan zou logischerwijs de enkele quote sneller gaan, omdat je videokaart dan 15 pixes minder moeten renderen 


edit: oh ik dacht dat je het anders bedoelde, nl:

dit is een text op je "scherm"
versus
dit is een text op je 'scherm'
Offline Thomas - 16/02/2006 11:48 (laatste wijziging 16/02/2006 11:50)
Avatar van Thomas Moderator PHP
Single quotes in PHP worden sneller geparsed omdat dit (volgens mij) "letterlijke strings" zijn; ze worden niet verder geëvalueerd.

Vergelijk:
  1. <?php
  2. $test = "hoi"; // test-variabele
  3.  
  4. echo "$test Pietje"; // dit is overigens niet echt netjes, maar verklaart het e.e.a
  5. // levert "hoi Pietje" op
  6.  
  7. echo '$test Pietje';
  8. // levert "$test Pietje"
  9. ?>


En als je dit in een for-lus gooit maakt het na duizend(en) iteraties misschien een paar milliseconden uit .

HTML
Maakt weinig uit qua snelheid lijkt mij - dubbele quotes voor attributen lijkt mij de juiste manier (uit oogpunt van validiteit).
Offline Voldemort - 16/02/2006 11:52
Avatar van Voldemort PHP ver gevorderde Ik zet mijn variablen toch altijd buiten de quotes . Ok, dus enkele in PHP, dubbele in HTML dus.

En voor functies en variablen in PHP, ook enkele om snelst te gaan?
Offline Thomas - 16/02/2006 13:10
Avatar van Thomas Moderator Het is maar net wat je voorkeur heeft, het maakt echt bitter weinig uit. Voor strings gebruik ik dubbele quotes, voor associatieve array-indices enkele quotes...
Offline Richard - 16/02/2006 15:24
Avatar van Richard Crew algemeen Enkele quotes is _altijd_ sneller, maar niet veel natuurlijk, PHP kan dit supersnel parsen, scheelt echt 10^600 sec. ofzo:P

echo is op diezelfde manier sneller. (bij HTML maakt het type quotes voor snelheid niks uit)
Offline webstab - 16/02/2006 19:38
Avatar van webstab PHP ver gevorderde 10^600 sec => bij mij weten is dat zeer veel

Als de site bij u traag laadt zal dat heus niet aan echo/print of quots liggen, maar eerder een query's of abnormale while/for lussen.

Mss toch ineens vragen, als zal het wss niet veel uitmaken. Wat gaat het rapste van de twee?

  1. <?php
  2. // hier een script met bv een query
  3. echo "html-code";
  4. // volgend script
  5. ?>

of
  1. <?php
  2. // hier script met bv een query
  3. ?>
  4. html-code
  5. <?php
  6. // volgend script
  7. ?>

Wss ook niet veel verschil, maar gewoon uit interesse. Ik zou zeggen op intuitief vlak gewoon het eerste.
Offline timo - 16/02/2006 19:48
Avatar van timo PHP ver gevorderde je kan beter html buiten php houden...
Offline webstab - 16/02/2006 19:49
Avatar van webstab PHP ver gevorderde Qua snelheid? Want ik zet dat altijd in één. Ik vind dat persoonlijker veel duidelijker en veel handiger.
Offline timo - 16/02/2006 19:51
Avatar van timo PHP ver gevorderde et kost als je veel html hebt meer parse tijd, zeker als je doet:
echo 'start tabel';
echo 'hierde td/tr bv';
echo 'sluit tabel';
etc.... moet ie al die xtra echo's enzow parsen, kan als je veel tabellen in een while lus hebt heel vol worden....
Offline webstab - 16/02/2006 19:54
Avatar van webstab PHP ver gevorderde Maar kost het ook geen tijd om php te starten? Want als je het telkens voor 2 regels html moet sluiten en dan terug starten.

[Gewoon uit interesse want ik weet dat die 10^-100 sec het toch niet maakt]
Offline timo - 16/02/2006 20:00
Avatar van timo PHP ver gevorderde ikzelf probeer html en php gescheiden te houden, ik ben zelf niet enorm bezig met parse tijden van mijn pagina's, maar stel nou dat je een forum hebt met 100 reply's op een topic, deze geef je allemaal onder elkaar weer, dat is dan wel 100* een while loop met iets meer parse tijd dan als je het scheid...
Offline nemesiskoen - 16/02/2006 20:01 (laatste wijziging 16/02/2006 20:01)
Avatar van nemesiskoen Gouden medaille

PHP expert
Citaat:
Maar ik lees iets als ingewikkelde structuren, wat bedoelen ze daar nu weer met .


Als je de rest ook leest zou je dit mss begrijpen. Check ook het overzicht, daar heb ik hierover iets gepost.
Offline Frederic - 16/02/2006 21:06 (laatste wijziging 16/02/2006 21:07)
Avatar van Frederic PHP ver gevorderde Test maar zelf: print vs echo

  1. <?php
  2. function micro ()
  3. {
  4. $t = explode (' ', microtime ());
  5. return $t[0] + $t[1];
  6. }
  7.  
  8.  
  9. // echo
  10. $start_echo = micro ();
  11. // loop miljoen keer
  12. for ($i = 0; $i < 1000000; $i++)
  13. {
  14.  
  15. echo 'TEKST';
  16. }
  17. // eind echo
  18. $end_echo = micro ();
  19.  
  20. // print
  21. $start_print = micro ();
  22. for ($i = 0; $i < 1000000; $i++)
  23. {
  24. print 'TEKST';
  25. }
  26. // print eind
  27. $end_print = micro ();
  28. // output buffer legen
  29.  
  30. // output
  31. echo 'echo: ' . ($end_echo - $start_echo) . '<br />print: ' . ($end_print - $start_print);
  32. ?>

Stel dat print nu sneller is, dan doe je een strijd van ' en " bij print, en dan weet je de snelste oplossing!
Offline timo - 16/02/2006 21:13
Avatar van timo PHP ver gevorderde een miljoen keer gaat je pc van crashen, firefox zal het afbreken op een gegeven moment....:o
Offline Riny - 16/02/2006 21:18 (laatste wijziging 16/02/2006 21:18)
Avatar van Riny Nieuw lid Ik heb het even met een while loop van 1000 geprobeerd, want een miljoen is iets teveel van het goede..

En telkens kwam eruit dat print sneller is dan echo.. Scheelt meestal 0.00005 seconden ofzo 

Maargoed.. maakt dus eigenlijk niet zoveel uit 
Offline nemesiskoen - 16/02/2006 21:34 (laatste wijziging 16/02/2006 21:34)
Avatar van nemesiskoen Gouden medaille

PHP expert
Dat is omdat je niet de execution time neemt maar de tijd die verstrijkt. Die gelijk is aan de execution time + random dus geen zekere waarde...
Offline ikkedikke - 16/02/2006 22:20 (laatste wijziging 16/02/2006 22:20)
Avatar van ikkedikke PHP expert een phpscript heeft maar 8 mb geheugenruimte dus niet echt eits om bang van te worden.
Bovendien gebruikt die whileloop niks extra aan geheugen als je na iedere echo een flush(); zet...
Offline Ultimatum - 16/02/2006 22:26
Avatar van Ultimatum PHP expert ik kreeg met de 1 miljoen loop dit eruit

echo: 4.85829997063
print: 15.100605011

volgens mij is echo dan sneller, of ik moet scheel zij of er geen donder van snappen 
Offline timo - 17/02/2006 11:49
Avatar van timo PHP ver gevorderde mijn resultaat met 1 miljoen loop
echo: 3.1589720249176
print: 9.316447019577

localhost getest, snelle pc met 1GB RAM, AMD Sempron 3000+
Offline Bart - 17/02/2006 12:21
Avatar van Bart PHP expert echo: 5.1370811462402
print: 15.834144115448
lokaal getest, 512MB, Intel Pentium 4 2800+
Offline timo - 17/02/2006 12:38
Avatar van timo PHP ver gevorderde in ieder gvl is echo sneller!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.249s