Kom ihåg mig?
Home Menu

Menu


Performance

 
Ämnesverktyg Visningsalternativ
Oläst 2004-11-03, 12:07 #11
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
Jag glömde ange storlek på bilden, jag testade med en JPEG på 2.2 MiB.

/ mikael
Mikael Simonsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-03, 14:54 #12
netflax netflax är inte uppkopplad
Medlem
 
Reg.datum: Aug 2004
Inlägg: 88
netflax netflax är inte uppkopplad
Medlem
 
Reg.datum: Aug 2004
Inlägg: 88
Tack Mikael, mycket bra redovisning!

3 ggr är ganska mkt... dock är mitt problem att jag vill kunna begränsa access till vissa bilder / filer vilket avgörs i PHP-filen. Får nog ta och överväga det hela och se om det verkligen är värt det.
netflax är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-05, 15:39 #13
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
Personligen tycker jag att du ska köra med PHP om du behöver begränsa tillgången som du säger. 3 gånger är INTE mycket om man tänker på vad som sker på servern när PHP används instället för att anropa bilden direkt.

Citat:
Requests per second: 37.41 [#/sec]
För att ha något att jämföra med så brukar sidor som den du just nu tittar på ligga runt 5-10 #/sec.

/ mikael
Mikael Simonsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-05, 16:28 #14
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
Citat:
Originally posted by Mikael Simonsson@Nov 5 2004, 16:39
Personligen tycker jag att du ska köra med PHP om du behöver begränsa tillgången som du säger. 3 gånger är INTE mycket om man tänker på vad som sker på servern när PHP används instället för att anropa bilden direkt.

Citat:
Requests per second: 37.41 [#/sec]
För att ha något att jämföra med så brukar sidor som den du just nu tittar på ligga runt 5-10 #/sec.

/ mikael
Jag håller med. Dessutom gjordes ju testen med en stor bild (2.2 MB) och med 10 samtidiga hämtningar. Det tolkar jag som om bilden kunde överföras 3.741 gånger per sekund requesttråd. Nedladdningstiden borde vara begränsande i det testet. Det kan ju vara overheaden i fpassthru som gör större skillnad än att PHP i övrigt anropas.

Testet borde göras om med en mindre fil (om det är mindre filer du vill accesskolla), men i det stora hela tycker jag du ska köra på en PHP lösning för att sfå den funktionalitet du vill ha.

I slutänden vill du ju göra så mkt mer än att bara hämta filen. Din accesskontroll (mot DB förmodar jag) kommer sannolikt stå för större del av tiden än vad fpassthru komemr göra.
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-05, 20:37 #15
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
Citat:
Originally posted by Mikael Simonsson@Nov 3 2004, 12:31
image.php:
Kod:
$sFilename = "./image.jpg";
$f = fopen($sFilename, 'rb');

header('Content-Type: image/jpeg');
header('Content-Length: ' . filesize($sFilename));

fpassthru($f);
exit();
Man kan göra koden något snabbare med readfile() istället för att öppna filen manuelt. Om PHP ska använda sig av mySQL för att beräkna behörigheten, kan en anslutning mot databasen som aldrig stängs öppnas. Då slipper man upprätthålla en anslutning samt logga in på mySQL för varje bild.
kullervo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-06, 11:08 #16
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 kullervo@Nov 5 2004, 21:37
Man kan göra koden något snabbare med readfile() istället för att öppna filen manuelt.
I det här fallet är det ingen skillnad i prestanda eftersom PHP måste göra samma sak internt, d.v.s. få ett handle till filen och sen anropa en annan funktion för att läsa innehållet. Istället skulle man kunna tänka sig att byta ut filesize() mot fstat(), men samma sak där, det gör ingen skillnad i prestanda.

Däremot kanske readfile() är enklare att använda här och ger lite snyggare kod.
Mikael Simonsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-07, 10:05 #17
zorans avatar
zoran zoran är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 598
zoran zoran är inte uppkopplad
Mycket flitig postare
zorans avatar
 
Reg.datum: Jun 2004
Inlägg: 598
Citat:
Ursprungligen postat av kullervo
Citat:
Ursprungligen postat av Mikael Simonsson
image.php:
Kod:
$sFilename = "./image.jpg";
$f = fopen($sFilename, 'rb');

header('Content-Type: image/jpeg');
header('Content-Length: ' . filesize($sFilename));

fpassthru($f);
exit();
Man kan göra koden något snabbare med readfile() istället för att öppna filen manuelt. Om PHP ska använda sig av mySQL för att beräkna behörigheten, kan en anslutning mot databasen som aldrig stängs öppnas. Då slipper man upprätthålla en anslutning samt logga in på mySQL för varje bild.
Man kan dessutom använda sig av mysqli_prepare om man har blivit välsignad med PHP5. Det är något jag saknat i PHP sen länge. Många likadana querys där bara enstaka villkor ändras snabbas upp betydligt med detta. Perfekt för autenticeringssystem.

Sen det där med bilden, hur snabbt det blir beror lite hur PHP är implementerat på servern. Att bara göra en bench utan att tala om något om konfigurationen säger i princip inte ett dyft.

Den överheaden som tillkommer gentemot en "statisk" bild är ju först och främst att sidan måste parsas av PHP-tolken. Om det är CGI-installerad PHP så får man enorm overhead jämfört om man kör FastCGI eller som apachemodul.

Den andra överheaden som tillkommer är hur optimerad din kod är. Det exempel vi såg är den enklaste och som ger minimal overhead. Sen kan det ju vara så att man vill fippla med bilden i sig och då får man använda sig av andra imagefunktioner som säkert ger ännu mer överhead.

/Zoran
zoran är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-07, 16:30 #18
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 zoran@Nov 7 2004, 11:05
Sen det där med bilden, hur snabbt det blir beror lite hur PHP är implementerat på servern. Att bara göra en bench utan att tala om något om konfigurationen säger i princip inte ett dyft.

Den överheaden som tillkommer gentemot en "statisk" bild är ju först och främst att sidan måste parsas av PHP-tolken. Om det är CGI-installerad PHP så får man enorm overhead jämfört om man kör FastCGI eller som apachemodul.

Den andra överheaden som tillkommer är hur optimerad din kod är. Det exempel vi såg är den enklaste och som ger minimal overhead. Sen kan det ju vara så att man vill fippla med bilden i sig och då får man använda sig av andra imagefunktioner som säkert ger ännu mer överhead.
Jag ville bara visa ett så enkelt exempel som möjligt, jag tror att alla här är medvetna om att det blir skillnad om man blandar in databasanrop och liknande. Men som jag skrev tidigare så är detta ändå en bra bit ifrån vad normala "tunga" sidor tar att generera.

Givetvis kör jag PHP som en Apachemodul, ledsen att det inte framgick i mitt exempel.

/ mikael
Mikael Simonsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-07, 17:29 #19
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
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.
WizKid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2004-11-07, 19:09 #20
FredrikMHs avatar
FredrikMH FredrikMH är inte uppkopplad
Supermoderator
 
Reg.datum: Apr 2004
Inlägg: 1 501
FredrikMH FredrikMH är inte uppkopplad
Supermoderator
FredrikMHs avatar
 
Reg.datum: Apr 2004
Inlägg: 1 501
Jag tror inte du ska bli så förskräckt av att php tar 3 gånger längre tid på sig att läsa filen än om apache skulle göra det. Jag vet inte vilken typ av sida du driver men du tvingar användaren att bli medlem (ha seession) för att se bilden och hotlinking slipper du. Har du otur kan hotlinking göra din servern mer beslastad än vad du kan tänka dig.
FredrikMH ä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 06:23.

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