PDA

Bekijk Volledige Versie : [php][gd_extension] bewerken van plaatje traag



Tjerk Wolterink
13/04/05, 18:45
Ik heb een php script gemaakt dat een plaatje
inleest uit een bestand, dit plaatje verkleint/vergroot
naar gewenste grootte (aangegeven in get variables).
Ook zet het scriptje een schaduw onder het plaatje.

Voorbeeld:
http://www.berendsenmeubelen.nl/xcm/image.php?image=Duncan.JPG&width=160

Zoals je ziet gaat dit enorm traag de eerste keer,
vervolgens gaat het sneller omdat de browser het plaatje cached.

Nu een pagina die meerdere van deze plaatjes gebruikt,
de eerste keer laden gaat ontzettend traag:

http://www.berendsenmeubelen.nl/index.php?page=pages/collectie_banken.page.xml

Hoe kan dit zo traag gaan??
Zal dit aan mijn script liggen of is gd gewoon traag??

ps, ik kan mijn script hier posten indien er om wordt gevraagd.


b.v.d. Tjerk

Daniel Tryba
13/04/05, 19:15
Daniel Tryba <partmapsswen@invalid.tryba.nl> wrote:
>> http://www.berendsenmeubelen.nl/index.php?page=pages/collectie_banken.page.xml
>
> Het laden hiervan gaat heel snel:
> Fatal Error:
> Possible Upload Hack, script aborted

Vals alarm, de l was bij het c&p eraf gevallen.

Tjerk Wolterink
13/04/05, 19:15
Daniel Tryba wrote:
> Tjerk Wolterink <tjerk@wolterinkwebdesign.com> wrote:
>
>>Nu een pagina die meerdere van deze plaatjes gebruikt,
>>de eerste keer laden gaat ontzettend traag:
>>
>>http://www.berendsenmeubelen.nl/index.php?page=pages/collectie_banken.page.xml
>
>
> Het laden hiervan gaat heel snel:
> Fatal Error:
> Possible Upload Hack, script aborted
>
>
>>Hoe kan dit zo traag gaan??
>
>
> Trage machine?
>

Ik zou het niet weten, ik host het bij iemand, en alle andere scripts gaan snel
genoeg. Dus lijkt me niet hieraan te liggen,
of is de gd extension mischien gewoon traag?

>
>>Zal dit aan mijn script liggen of is gd gewoon traag??
>
>
> Waarom zou je die plaatjes steeds genereren? Dat scheelt heel veel cpu
> tijd.
>
Dat klopt, het is beter om ze eenmalig te genereren,
maar dit is nog niet geimplementeerd, en is nog niet prioriteit.
Maar ik vind het gewoon raar dat zoiets als het plaatje verkleinen al traag gaat.

Jan Smeelen
13/04/05, 23:05
"Tjerk Wolterink" <tjerk@wolterinkwebdesign.com> schreef in bericht
news:425d5393$0$25839$dbd49001@news.wanadoo.nl...
> Daniel Tryba wrote:
>> Tjerk Wolterink <tjerk@wolterinkwebdesign.com> wrote:
>>
>>>Nu een pagina die meerdere van deze plaatjes gebruikt,
>>>de eerste keer laden gaat ontzettend traag:
>>>
>>>http://www.berendsenmeubelen.nl/index.php?page=pages/collectie_banken.page.xml
>>
> Ik zou het niet weten, ik host het bij iemand, en alle andere scripts gaan
> snel genoeg. Dus lijkt me niet hieraan te liggen,
> of is de gd extension mischien gewoon traag?
>>
>>>Zal dit aan mijn script liggen of is gd gewoon traag??
>>
>> Waarom zou je die plaatjes steeds genereren? Dat scheelt heel veel cpu
>> tijd.
>>
> Dat klopt, het is beter om ze eenmalig te genereren,
> maar dit is nog niet geimplementeerd, en is nog niet prioriteit.
> Maar ik vind het gewoon raar dat zoiets als het plaatje verkleinen al
> traag gaat.

Volgens mij liggen je prioriteiten wat verkeerd !

Wat bereik je nu :
- Bezoeker moet té lang wachten voordat de site is ingeladen.
- Behoorlijk hoge server belasting.
( Als elke site die op die server zit hetzelfde doet als jij,
zal je provider héél blij met je zijn ( NIET dus ! )

Met GD elke keer dat plaatje opnieuw aanmaken betekent
gewoon flink tijdverlies en extra server belasting, wat met
een kleine ingreep aan jouw zijde snel opgelost kan worden.

Succes !
Jan Smeelen.

Tjerk Wolterink
14/04/05, 00:15
Jan Smeelen wrote:
> "Tjerk Wolterink" <tjerk@wolterinkwebdesign.com> schreef in bericht
> news:425d5393$0$25839$dbd49001@news.wanadoo.nl...
>
>>Daniel Tryba wrote:
>>
>>>Tjerk Wolterink <tjerk@wolterinkwebdesign.com> wrote:
>>>
>>>
>>>>Nu een pagina die meerdere van deze plaatjes gebruikt,
>>>>de eerste keer laden gaat ontzettend traag:
>>>>
>>>>http://www.berendsenmeubelen.nl/index.php?page=pages/collectie_banken.page.xml
>>>
>>Ik zou het niet weten, ik host het bij iemand, en alle andere scripts gaan
>>snel genoeg. Dus lijkt me niet hieraan te liggen,
>>of is de gd extension mischien gewoon traag?
>>
>>>>Zal dit aan mijn script liggen of is gd gewoon traag??
>>>
>>>Waarom zou je die plaatjes steeds genereren? Dat scheelt heel veel cpu
>>>tijd.
>>>
>>
>>Dat klopt, het is beter om ze eenmalig te genereren,
>>maar dit is nog niet geimplementeerd, en is nog niet prioriteit.
>>Maar ik vind het gewoon raar dat zoiets als het plaatje verkleinen al
>>traag gaat.
>
>
> Volgens mij liggen je prioriteiten wat verkeerd !

Nee die liggen niet verkeerd,
maar daar gaat deze topic ook niet over.
Zoiets als dit kan ik altijd nog implementeren, ben nu
met andere belangrijkere dingen bezig.

> Wat bereik je nu :
> - Bezoeker moet té lang wachten voordat de site is ingeladen.

mijn vraag was dus, waardoor komt dit langzame laden??
Komt dit nu door de gd functies die ik gebruik,
zijn die zo traag?
Dat was mijn vraag, heb ik nog geen antwoord op.

> - Behoorlijk hoge server belasting.
> ( Als elke site die op die server zit hetzelfde doet als jij,
> zal je provider héél blij met je zijn ( NIET dus ! )

Ok daar heb je gelijk, maar nog geen problemen mee gehad.

>
> Met GD elke keer dat plaatje opnieuw aanmaken betekent
> gewoon flink tijdverlies en extra server belasting, wat met
> een kleine ingreep aan jouw zijde snel opgelost kan worden.
>
> Succes !
> Jan Smeelen.
>

bedankt voor je input Jan,
maar ik zit me af te vragen waar de bottleneck nou echt zit,
gd zou toch niet zoo erg traag moeten zijn?
Of kan het aan de cpu liggen die wordt gedeeld met andere websites?



>
>
>
>

Daniel Tryba
14/04/05, 01:05
Tjerk Wolterink <tjerk@wolterinkwebdesign.com> wrote:
>>>Maar ik vind het gewoon raar dat zoiets als het plaatje verkleinen al
>>>traag gaat.

Ik neem aan dat je zo ongeveer weet wat er nodig is om een plaatje te
kunnen verkleinen!

>> Volgens mij liggen je prioriteiten wat verkeerd !
>
> Nee die liggen niet verkeerd,
> maar daar gaat deze topic ook niet over.
> Zoiets als dit kan ik altijd nog implementeren, ben nu
> met andere belangrijkere dingen bezig.
>
>> Wat bereik je nu :
>> - Bezoeker moet t? lang wachten voordat de site is ingeladen.
>
> mijn vraag was dus, waardoor komt dit langzame laden??
> Komt dit nu door de gd functies die ik gebruik,
> zijn die zo traag?
> Dat was mijn vraag, heb ik nog geen antwoord op.

Zoek een alternatieve manier en ga benchmarken (of zoek het gewoon op
(er is ooit al zo'n vraag hier gesteld nav imagemagick)).

>> - Behoorlijk hoge server belasting.
>> ( Als elke site die op die server zit hetzelfde doet als jij,
>> zal je provider h??l blij met je zijn ( NIET dus ! )
>
> Ok daar heb je gelijk, maar nog geen problemen mee gehad.

Zou het wellicht toch een antwoord op je vraag kunnen zijn?

Pak een packetsniffer erbij en kijk wat gebeurd als zo'n pagina voor het
eerst wordt opgevraagd. Met wat pech wordt er voor elk plaatje een
request gedaan, die initiele requests zijn vrijwel gelijktijdig. MAW een
flinke systeem belasting.

Jan Smeelen
14/04/05, 02:25
"Tjerk Wolterink" <tjerk@wolterinkwebdesign.com> schreef in bericht
news:425d9849$0$38259$dbd49001@news.wanadoo.nl...
> Jan Smeelen wrote:
>> "Tjerk Wolterink" <tjerk@wolterinkwebdesign.com> schreef in bericht
>> news:425d5393$0$25839$dbd49001@news.wanadoo.nl...
>>
>>>Daniel Tryba wrote:
>>>
>>>>Tjerk Wolterink <tjerk@wolterinkwebdesign.com> wrote:
>>>>
>>>>
>>>>>Nu een pagina die meerdere van deze plaatjes gebruikt,
>>>>>de eerste keer laden gaat ontzettend traag:
>>>>>
>>>>>http://www.berendsenmeubelen.nl/index.php?page=pages/collectie_banken.page.xml
>>>>
>>>Ik zou het niet weten, ik host het bij iemand, en alle andere scripts
>>>gaan snel genoeg. Dus lijkt me niet hieraan te liggen,
>>>of is de gd extension mischien gewoon traag?
>>>
>>>>>Zal dit aan mijn script liggen of is gd gewoon traag??
>>>>
>>>>Waarom zou je die plaatjes steeds genereren? Dat scheelt heel veel cpu
>>>>tijd.
>>>>
>>>
>>>Dat klopt, het is beter om ze eenmalig te genereren,
>>>maar dit is nog niet geimplementeerd, en is nog niet prioriteit.
>>>Maar ik vind het gewoon raar dat zoiets als het plaatje verkleinen al
>>>traag gaat.
>>
>>
>> Volgens mij liggen je prioriteiten wat verkeerd !
>
> Nee die liggen niet verkeerd,
> maar daar gaat deze topic ook niet over.
> Zoiets als dit kan ik altijd nog implementeren, ben nu
> met andere belangrijkere dingen bezig.

Blijkbaar wél, in de tijd die je nu bezig bent met het posten,
lezen en replyen in de nieuwsgroep, had je ook kunnen besteden
aan het script voor niet elke keer het opnieuw laten verkleinen van de
plaatjes.....

Ook Daniel Tryba heeft je daarop gewezen, en ook die weet waarover hij praat
!

Ik heb zelf ook ervaring met die GD functie's, en ik kan je uit ervaring
vertellen dat het verkleinen behoorlijk wat tijd en cpu belasting vergt,
zeker als je originele plaatje behoorlijk groot is..... !

Mocht je het nog niet inzien en met me eens zijn :
Maak eens een test met slechts 1 plaatje op die pagina,
en meet het verschil.....( meten is weten :o)

E.e.a. hangt ook enigzins af van de configuratie van je server
(processor, RAM geheugene etc.. ) maar beter die plaatjes slechts
1 keer verkleinen en opslaan dan elke keer die extra tijd en cpu belasting.

> bedankt voor je input Jan,
> maar ik zit me af te vragen waar de bottleneck nou echt zit,
> gd zou toch niet zoo erg traag moeten zijn?
> Of kan het aan de cpu liggen die wordt gedeeld met andere websites?

Zélfs al had je een eigen dedicated server waar alleen die site opdraait,
zélfs dan nog heb je een behoorlijke extra vertraging.
( Om nog maar niet te spreken wat er met de load v.d. server gebeurt,
zodra je site écht bezoekers gaat trekken, ipv de paar bezoekers die hem
nu zien tijdens je test periode ;o)

Neem het van me aan, of anders van Daniel, dat je je prioriteit
eventjes moet verleggen om dit probleem op te lossen :o)

Succes !
Jan Smeelen.
http://www.webfontein.nl

PanMan
18/04/05, 01:55
On Wed, 13 Apr 2005 16:38:24 +0200, Tjerk Wolterink
<tjerk@wolterinkwebdesign.com> wrote:

>Ik heb een php script gemaakt dat een plaatje
>inleest uit een bestand, dit plaatje verkleint/vergroot
>naar gewenste grootte (aangegeven in get variables).
>Ook zet het scriptje een schaduw onder het plaatje.
>
>Voorbeeld:
>http://www.berendsenmeubelen.nl/xcm/image.php?image=Duncan.JPG&width=160
>
>Zoals je ziet gaat dit enorm traag de eerste keer,
>vervolgens gaat het sneller omdat de browser het plaatje cached.
>
>Nu een pagina die meerdere van deze plaatjes gebruikt,
>de eerste keer laden gaat ontzettend traag:
>
>http://www.berendsenmeubelen.nl/index.php?page=pages/collectie_banken.page.xml
>
>Hoe kan dit zo traag gaan??
>Zal dit aan mijn script liggen of is gd gewoon traag??

GD is gewoon niet heel erg snel. Maar het resizen van een plaatje
duurt altijd wel even. Maar gelukkig is het heel eenvoudig om je
plaatje na de eerste resize op te slaan. Vervolgens kan je de volgende
keer dat er om het plaatje wordt gevraagd doorverwijzen naar de
opgeslagen versie op de server (b.v. met een location header).
Dit hoeft echt niet veel meer dan 5 regels code te zijn, en zal je een
hoop schelen. Gewoon een check of de file bestaat (if
(file_exists($naam))), en aan de hand daarvan doorverwijzen naar die
file, of een plaatje maken en deze naar disk opslaan, waarna je er
naar kan verwijzen.
Uiteraard hangt het er ook vanaf hoe vaak een plaatje wordt
opgevraagd, het is altijd een afweging tussen opslagruimte en
processortijd. Ik heb zelf voor een site dat de thumbs en de foto's
altijd worden gecached (op de server), maar het plaatje boven een
bestelling wel live wordt gerenderd (dit zijn dus 3x dezelfde
plaatjes, met andere groote): Er worden een stuk minder bestellingen
gedaan dan foto's bekeken.
Overigens kan je natuurlijk ook altijd even de code posten, wellicht
dat er dingen beter kunnen, maar dat kunnen we zo niet gokken
natuurlijk.
Success!
PanMan.

Tjerk Wolterink
18/04/05, 19:05
PanMan wrote:
> On Wed, 13 Apr 2005 16:38:24 +0200, Tjerk Wolterink
> <tjerk@wolterinkwebdesign.com> wrote:
>
>
>>Ik heb een php script gemaakt dat een plaatje
>>inleest uit een bestand, dit plaatje verkleint/vergroot
>>naar gewenste grootte (aangegeven in get variables).
>>Ook zet het scriptje een schaduw onder het plaatje.
>>
>>Voorbeeld:
>>http://www.berendsenmeubelen.nl/xcm/image.php?image=Duncan.JPG&width=160
>>
>>Zoals je ziet gaat dit enorm traag de eerste keer,
>>vervolgens gaat het sneller omdat de browser het plaatje cached.
>>
>>Nu een pagina die meerdere van deze plaatjes gebruikt,
>>de eerste keer laden gaat ontzettend traag:
>>
>>http://www.berendsenmeubelen.nl/index.php?page=pages/collectie_banken.page.xml
>>
>>Hoe kan dit zo traag gaan??
>>Zal dit aan mijn script liggen of is gd gewoon traag??
>
>
> GD is gewoon niet heel erg snel. Maar het resizen van een plaatje
> duurt altijd wel even. Maar gelukkig is het heel eenvoudig om je
> plaatje na de eerste resize op te slaan. Vervolgens kan je de volgende
> keer dat er om het plaatje wordt gevraagd doorverwijzen naar de
> opgeslagen versie op de server (b.v. met een location header).
> Dit hoeft echt niet veel meer dan 5 regels code te zijn, en zal je een
> hoop schelen. Gewoon een check of de file bestaat (if
> (file_exists($naam))), en aan de hand daarvan doorverwijzen naar die
> file, of een plaatje maken en deze naar disk opslaan, waarna je er
> naar kan verwijzen.
> Uiteraard hangt het er ook vanaf hoe vaak een plaatje wordt
> opgevraagd, het is altijd een afweging tussen opslagruimte en
> processortijd. Ik heb zelf voor een site dat de thumbs en de foto's
> altijd worden gecached (op de server), maar het plaatje boven een
> bestelling wel live wordt gerenderd (dit zijn dus 3x dezelfde
> plaatjes, met andere groote): Er worden een stuk minder bestellingen
> gedaan dan foto's bekeken.
> Overigens kan je natuurlijk ook altijd even de code posten, wellicht
> dat er dingen beter kunnen, maar dat kunnen we zo niet gokken
> natuurlijk.
> Success!
> PanMan.

ik ben overtuigd, het is ook maar een klein werkje dat checken.