Kom ihåg mig?
Home Menu

Menu


Performance

 
Ämnesverktyg Visningsalternativ
Oläst 2004-11-07, 19:16 #21
Mikael Simonsson Mikael Simonsson är inte uppkopplad
Nykomling
 
Reg.datum: Jun 2004
Inlägg: 34
Mikael Simonsson Mikael Simonsson är inte uppkopplad
Nykomling
 
Reg.datum: Jun 2004
Inlägg: 34
Citat:
Originally posted by WizKid@Nov 7 2004, 18:29
Vet inte hur ApacheBench funkar men är det möjligt att den cachar bilderna och därför bara får ett 304 svar? För isåfall bör man lägga in samma sak i PHP skriptet vilket är rätt enkelt gjort.
En sån funktion skulle förstöra hela funktionen med programmet. Du kan läsa mer om ApacheBench här:
httpd.apache.org/docs/programs/ab.html
Mikael Simonsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-08-18, 21:17 #22
kullervos avatar
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2003
Inlägg: 1 519
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
kullervos avatar
 
Reg.datum: Dec 2003
Inlägg: 1 519
Drar upp den här gamla tråden eftersom jag sitter i samma sits nu.

Jag vill alltså gärna låta PHP sköta berhörighetskontroll för bilder. Jag har kört benchmark och kommit fram till att det är hälften så snabbt att göra detta med PHP. Nu är frågan om det har hänt något på den här fronten och alltså om det finns några bra metoder att snabba upp PHP. Jag har testat olika inställningar för output buffer utan nämnvärt resultat. Kan det vara så att PHP 5 av någon anledning är snabbare på detta? Andra tips på trim uppskattas (allt från kompileringsflaggor till inställningar).

Mjukvara:
Linux
Apache 2 (prefork MPM)
PHP 4

Testkörd kod:
Citat:
<?php
readfile('testfil');
?>
kullervo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-08-19, 14:39 #23
Micke04 Micke04 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 571
Micke04 Micke04 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 571
Jag använder eAccelerator som cachar phpfilerna färdigkompilerade. Detta hjälper mig en hel del. Jag vet inte hur mycket det hjälper vid bildvisning, men det är jag nyfiken på.

eAccelerator är en vidareutveckling av turckmmcache.
Micke04 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-08-19, 16:25 #24
kullervos avatar
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2003
Inlägg: 1 519
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
kullervos avatar
 
Reg.datum: Dec 2003
Inlägg: 1 519
Med eAccelerator tjänar jag ca. 5-7% i tid. Det medgör att det bara tar 60% mer tid med PHP. Hur jag kunde få det till att det tog dubbelt så lång tid med PHP igår vet jag inte för det är samma kod jag kört testet på. Men men, 60% är inte så farligt mycket.
kullervo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-08-19, 17:21 #25
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
Hittade denna kommentar på php.net "readfile and fpassthru are about 55% slower than doing a loop with "feof/echo fread"." Vet inte om det stämmer men du skulle ju alltid kunna testa.
WizKid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-08-23, 12:09 #26
Tvartom Tvartom är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 86
Tvartom Tvartom är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 86
Kul att denna gamla tråden kom upp igen.
Jag håller på med ett system där jag har stått inför precis
samma övervägande.

För att undvika att databasen behöver tillkallas vid var bild som ska skickas till webläsaren,
så funderar jag på följande.

Sidan som generarar alla [img]image.php?id...[/img]-tagar
kontrollerar ju även att bilden är godkänd för användarn
(Annars skulle inte tagen-skrivas)
Således behöver inte detta test göras fler gånger så en cache med
denna information lägges i en session-variabel.

Så image.php kontrollerar enbart mot databasen om bilden saknas i session-variabeln.
image.php rensar även i session-variabeln när bilden visasts, för att sessions-datamängden inte
ska växa ohämat.

Jag har inte haft tid att testa systemets prestanda än, men jag hoppas det ska snabba upp det hela!

/ Lasse
Tvartom är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-08-23, 13:44 #27
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Tvartom: Jag tror inte din egen hemmagjorda cachning ger något nämnvärt i performance vinst.

För image.php måste ju läsa filen (readfile, read eller passthru) oavsett och det är där flaskhalsen ligger tror jag. Inte i hur effektivt du kollar om bilden är ok eller inte mot databasen.
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-08-28, 14:23 #28
Weaver Weaver är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2006
Inlägg: 403
Weaver Weaver är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2006
Inlägg: 403
Halkade in på denna gamla tråden.

Varför inte kombinera det bästa av två världar. Låt php kontrollera om användaren får ladda ned bilden och låt apache skicka den.

Jag tänker mig nått i stil med detta:
Kod:
image.php
Kontrollera om användaren får ladda ned bilden
   Ja användaren har rättighet
     header('Location: <bildens url>');
   Nej användaren har inte rättigheter att se bilden
     header('<sänd forbidden header>');
Någon kanske har lust att benchmarka

Dock så kan tekniska användare hotlinka till denna bilden om de tittar på headrarna som servern skickar tillbaka. Men i slutändan är väl allt en avvägning.

Edit: Formattering av pseudokod
Weaver är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-08-28, 14:39 #29
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
Men om du gör header('Location: <bildens url>'); vad hindrar då någon att gå direkt till bilden?

Däremot om man använder lighttpd kan man göra det. Då kan man göra auth-kollen i php och sen sätta headern x-sendfile vilket gör att Lighttpd kommer outputa bilden åt en. Mer info finns på http://blog.lighttpd.net/articles/2006/07/...7/02/x-sendfile.
WizKid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-08-28, 14:56 #30
Weaver Weaver är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2006
Inlägg: 403
Weaver Weaver är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2006
Inlägg: 403
Citat:
Men om du gör header(Location: bildens url); vad hindrar då någon att gå direkt till bilden?
Läs min postning igen...

Citat:

Däremot om man använder lighttpd kan man göra det. Då kan man göra auth-kollen i php och sen sätta headern x-sendfile vilket gör att Lighttpd kommer outputa bilden åt en. Mer info finns på http://blog.lighttpd.net/articles/2006/07/02/x-sendfile.
Intressant, gjorde lite mer research på X-Sendfile. Finns en mod så att också Apache användare kan få tillgång till denna utmärkta funktion: http://tn123.ath.cx/mod_xsendfile/

Så då är det bara att ta mitt exempel och byta ut Location mot x-sendfile och se till att modden är installerad på din Apache server.

Nu är det verkligen det bästa av två världar
Weaver är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 17:11.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017