Toon posts:

PHP & mySQL | Wat is beter voor performance?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een poultje te maken met PHP, maar ik vraag me nu af wat beter is voor PHP performance...

Stel je hebt steeds wat PHP code en wat output, wat is dan beter voor de sever perfomance, dit:
code:
1
2
3
4
5
6
7
8
<?
blurp();
echo "bla";
blurp();
echo "bla";
blurp();
echo "bla";
?>

of....
code:
1
2
3
4
5
6
<? blurp(); ?>
bla
<? blurp(); ?>
bla
<? blurp(); ?>
bla

En dan moet je niet denken aan 3 x wisselen, maar een stuk of 20x. Bij een cursus van een CMS(vbScript) vertelden ze me dat vaak wisselen tussen script-code en HTML-code killing is voor de server performance...

Daarnaast wil ik wat info uit wisselende rijen uit m'n DB, deze rijen zijn dus altijd verschillend. Is het dan handig om ipv. 6 queries eerst 1 query te doen en de hele boel in een array te plempen(24 rijen * 4 velden)?

OK, thanx in advance!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Wat heeft dit met mySQL te maken?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?
$a = getMicroTime();
for($i=0;i<1000;i++) {
?> test <?
}
$b= $a- getMicrotime();

$a = getMicroTime();
for($i=0;i<1000;i++) {
  echo " test ";
}
$c= $a- getMicrotime();

$a = getMicroTime();
for($i=0;i<1000;i++) {
  echo ' test ';
}
$d= $a- getMicrotime();

$a = getMicroTime();
for($i=0;i<1000;i++) {
  print ' test ';
}
$e= $a- getMicrotime();
echo "$b, $c, $d, $e";
?>

Dan kun je het zelf zien...

Localhost, sweet localhost


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Die test is niet geheel correct. die
PHP:
1
2
3
<?
for() { ?> woei <? }
?>

wordt 1x omgezet naar een goede echo, meen ik.

Je zou juist een for() moeten maken die dat 100,000 keer voor je uitprint en DAT vv. gaan timen...

Klaar voor een nieuwe uitdaging.


Verwijderd

Wat men mij altijd heeft verteld is dat hoe minder je in php escaped hoe beter dat is voor de performance en server load etc.

Dat van mysql moet je maar eens benchmarken. Ik ben benieuwd naar de resultaten. (met een fetch_array ben je volgens de tests van chem het best af (dus geen fetch_object of fetch_row!))

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 15-09 23:45
Het beste kan j dat eigenlijk testen met ab. Da's een benchmarktool van apache.

Wat betreft die MySQL vraag, zou ik voor de 1 query oplossing gaan. Je hebt dat wel een iets grotere recordset, maar dat zal volgens mij nog altijd sneller zijn dan 5 extra queries naar de database server sturen.

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Ach het is toch niet interessant. HTML code in je PHP script is toch evil >:) ;)

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 14-09 22:46

Apache

amateur software devver

Op zondag 30 december 2001 19:16 schreef Orphix het volgende:
Ach het is toch niet interessant. HTML code in je PHP script is toch evil >:) ;)
maar jammer genoeg wel de snelste oplossing, ik denk dat er weinig oplossingen zijn waar je snelheidswinst / of gelijke snelheid haalt met een gescheidde oplossing.

If it ain't broken it doesn't have enough features


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

post de queries eens, dan kan ik er wat over zeggen qua performance en mogelijk een alternatieve query bieden.

Verwijderd

Op zondag 30 december 2001 19:16 schreef Orphix het volgende:
Ach het is toch niet interessant. HTML code in je PHP script is toch evil >:) ;)
:D Ik vind het precies andersom. In verband met overzichterlijkheid. Bovendien kost het qua performance dus meer. Apache moet namelijk vaker <? ?> naar de PHPparser sturen.

Ik zal even zoeken op php of er wat te vinden valt.

Verwijderd

Nix gevonden...
Ik ga nu even benchmarken:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
$starttime = microtime();
for($i=0;$i<10000;$i++) {
?>
<i><b><? echo $i; ?></b> loopjes gemaakt. Tijd is nu <? echo microtime(); ?></i><br>
<?
}
?>
Klaar! 
<?
echo microtime() - $startime;
?>

versus
PHP:
1
2
3
4
5
6
7
<?
$starttime = microtime();
for($i=0;$i<10000;$i++) {
    echo "<i><b>$i</b> loopjes gemaakt. Tijd is nu ".microtime()."</i><br>";
}
echo "Klaar! ".microtime() - $startime;
?>

Resultaten post ik tzt wel even.


Eerste bechmark:
0 loopjes gemaakt. Tijd is nu 0.00036000 1009742128
[..knip :)..]
9999 loopjes gemaakt. Tijd is nu 0.70604400 1009742133
Tweede benchmark:
0 loopjes gemaakt. Tijd is nu 0.67032700 1009742297
[..knip :)..]
9999 loopjes gemaakt. Tijd is nu 0.50595600 1009742303
Tel uit je winst! :D. Hoe verder mogelijk is dat de microtime achteruit gaat weet ik verder niet.
Voor de liefhebbers: http://www.dosdos.f2s.com/bench1.php & http://www.dosdos.f2s.com/bench2.php

  • Le Mol
  • Registratie: April 2000
  • Niet online
ik heb ook ff wat gepeild, maar het is echt sneller om een echo te gebruiken, al zul je het verschil bij 20x wisselen niet echt gaan merken.....

Logic brings you from a to b, your imagination can bring you anywhere


  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 12:04

Super_ik

haklust!

kep mn ook ff hier thuis getest maar bij mij is test1 elke keer iest sneller dan test2

[edit] ik krijg telkens heel uit elkaar liggende waarde :? van 0.1blaart tot 0.8blaat :? maarja tis bij beide testen

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


Verwijderd

Topicstarter
Thanx allen, vooral Daniel. Dat iedereen z'n voordeel er mee mag doen.

En Orphix > houdt voortaam je mond maar.

Verwijderd

Topicstarter
Op zondag 30 december 2001 18:53 schreef freak007 het volgende:
Wat betreft die MySQL vraag, zou ik voor de 1 query oplossing gaan. Je hebt dat wel een iets grotere recordset, maar dat zal volgens mij nog altijd sneller zijn dan 5 extra queries naar de database server sturen.
Query is simpel: SELECT * from TABLE where ID = $x , niets bijzonders dus, retouneerd 4 kollomen(2 id's en 2 strings).

  • spine
  • Registratie: Juni 2001
  • Niet online

spine

VISHUDDHI

Op zondag 30 december 2001 19:16 schreef Orphix het volgende:
Ach het is toch niet interessant. HTML code in je PHP script is toch evil >:) ;)
idd.. >:)

[BSDFreaks.nl] [www.Dark-Future.org] [Alizarin.nl]


  • Michael
  • Registratie: Maart 2000
  • Laatst online: 20-07 17:52
[b]Op zondag 30 december 2001 22:52 schreef
En Orphix > houdt voortaam je mond maar.
Ben het anders wel met hem eens, wat maakt die 0.002 seconde nou uit als je code gewoon veel beter onderhoudbaar word ?

Je kan wel heel je code ranzig gaan maken en dan 0.01% minder cpu gebruiken, maar ik gok dat je uiteindelijk door die ranzigheid fouten gaat maken en onnodig veel cpu gebruikt :-)

persoonlijk escape ik php bijna altijd voor meer dan 1 regel html

Verwijderd

Topicstarter
Op zondag 30 december 2001 23:00 schreef Michael het volgende:

[..]

Ben het anders wel met hem eens, wat maakt die 0.002 seconde nou uit als je code gewoon veel beter onderhoudbaar word ?

Je kan wel heel je code ranzig gaan maken en dan 0.01% minder cpu gebruiken, maar ik gok dat je uiteindelijk door die ranzigheid fouten gaat maken en onnodig veel cpu gebruikt :-)

persoonlijk escape ik php bijna altijd voor meer dan 1 regel html
Als jij dit kan schirjven dan kan Orphix toch ook gewoon zeggen dat het niets uit maakt?
Pagina: 1