[PHP/GD] Vraag over processorgebruik

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een site voor een supermarktketen die binnenkort online gaat. Nu genereer ik op deze website middels PHP i.c.m. de GD lib. nogal wat dingen voor bijvoorbeeld op de indexpagina.

Titels van tabelkoppen, kleine plaatjes bij het laatste nieuws etc, het komt allemaal uit de database.

Nu is mijn vraag: de website is nu gewoon snel. Maar, als ik straks 10.000 bezoekers op de pagina krijg, dan zou ik graag zien dat deze nog steeds even snel is. Er wordt nu gewerkt op een dikke pc met windows server 2003, zou goed moeten zijn veronderstel ik.

Heeft iemand hier een visie over of ervaring mee?
Anders ga ik over een paar weken zitten zweten zoals in die reclame van Vuurwerk Internet ;-)... en das ff niet de bedoeling 8)7

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

a) Waarom genereer je uberhaupt plaatjes?
b) waarom cache je de gegenereerde plaatjes niet? :)

want ja, ik denk dat het best wel impact heeft als je site veel hits krijgt :)

[ Voor 31% gewijzigd door .oisyn op 03-10-2003 14:25 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Jah inderdaad, gewoon zo:

code:
1
2
3
4
5
6
7
8
9
10
11
if (!plaatje_is_al_gegenereerd)
{
genereer_plaatje();
pleur_plaatje_in_db();
pleur_plaatje_naar_client();
}
else
{
sleur_plaatje_uit_db();
pleur_plaatje_naar_client();
}

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 03:13
Je kunt dit soort dingen sowieso wel aardig benchmarken met tooltjes als 'ab' (zit bij Apache) of vergelijkbare tools voor Windows (ik neem aan dat ze bestaan; zoek maar even met Google). Je kunt dan gewoon zien hoeveel requests je per seconde kunt afhandelen; is dat te weinig, dan kun je gaan optimaliseren.

Dat neemt natuurlijk niet weg dat het geen kwaad kan om eenmaal gegenereerde plaatjes op te slaan, als dat mogelijk is.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Papa Eend schreef op 03 oktober 2003 @ 14:36:
Jah inderdaad, gewoon zo:

code:
1
2
3
4
5
6
7
8
9
10
11
if (!plaatje_is_al_gegenereerd)
{
genereer_plaatje();
pleur_plaatje_in_db();
pleur_plaatje_naar_client();
}
else
{
sleur_plaatje_uit_db();
pleur_plaatje_naar_client();
}
plaatjes horen niet in een database, die kun je beter gewoon in een een of andere dir gooien (dat is ook een stuk sneller)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • MisterData
  • Registratie: September 2001
  • Laatst online: 29-08 20:29
.oisyn schreef op 03 October 2003 @ 15:36:
[...]


plaatjes horen niet in een database, die kun je beter gewoon in een een of andere dir gooien (dat is ook een stuk sneller)
En het is simpeler, een file_exist is nog steeds makkelijker dan weer een SQL-query. Bovendien kun je met de 'modified'-tijd van een gecacheerd plaatje precies zien of het nog een actueel plaatje is. Ook is het makkelijk om vanuit GD naar een bestand te schrijven:

PHP:
1
2
3
4
5
6
<?php

imagejpeg($image); // doe je nu
imagejpeg($image,"bestand.jpg"); // doe je om een plaatje te cachen

?>

Acties:
  • 0 Henk 'm!

Verwijderd

Vergeet niet rekening te houden met het feit dat de GD library lang niet op elke webserver geinstalleerd is, hè? En vaak ook zonder FreeType support.

[ Voor 17% gewijzigd door Verwijderd op 03-10-2003 17:14 ]

Pagina: 1