WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Prestanda LAMP (https://www.wn.se/forum/showthread.php?t=20165)

Conth 2007-03-23 10:55

Hej,

Brottas med en sajt som får dåliga svarstider vid hög belastning. För att hitta vilka sidor som tar tid att ladda har jag mätt (mha microtime()) i php när skriptet startar och när det är klart. Jag har då märkt kopplingen att det tar längre tid att skapa en sida i php ju större sidan är. Det är ju i sig inget konstigt, men jag trodde nog att mitt problem mer var relaterat till databasaccesser, dva att sidor med mycket accesser tog tid att skapa men det huvudsakliga problemet verkar vara relaterat till den skapade sidans storlek.

Har länge misstänkt att vi inte riktigt får den bandbredd (via webhotellets serverhall) som vi behöver. Svårt att fastställa då vi (förutom vår garantinivå) har tillgång till en delad pool.

Nu till min fråga:
Tar det längre tid för mig att köra echo() i mitt php-skript om jag har taskig bandbredd!? Kan inte tänka mig att det är så men jag är osäker på hur samarbetet sker mellan php-apache-browsern.

Är förklaringen annars "bara" att php/apache tar mer tid/resurser för att skapa en "stor" sida? Jag hade nog trott att resursåtgången för att göra echo på 10k skulle skilja sig marginellt mot att göra echo på 1k!?!

Kan tillägga att jag har testat cache:ad output utan att märka någon förbättring.

eliasson 2007-03-23 11:07

Förstod inte ett skit faktiskt när jag läste men tänk på att använda echo "foo"; istället för echo("foo"); eftersom echo() tar längre tid om man ska börja prata benchmark.

Conth 2007-03-23 11:30

Ja otydligt skrivet av mig vi använder: echo "foo";

hnn 2007-03-23 15:05

Tänk även på:

echo "foo";

tar längre tid än

echo 'foo';

Samt..

echo 'foo' . $bar . '
';

tar längre tid än

echo 'foo' , $bar , '
';

Westman 2007-03-23 18:23

Citat:

Originally posted by hnn@Mar 23 2007, 16:05
echo 'foo' . $bar . '
';

tar längre tid än

echo 'foo' , $bar , '
';

Det var nytt för mig men väldigt nyttigt. Tack!

boena 2007-03-24 10:20

Japp nytt för mig också. Man tackar :)

fors 2007-03-24 10:40

Jag vet inte. Jag kan givetvis ha fel, men det känns som att den optimeringen inte gör särskilt mycket så till vida att man inte har jättemånga echo-anrop. Det finns många andra sätt att optimera, bland annat att skriva korrekta databasfrågor (och ha en bra databaslayout) och använda cache.

DeSoto 2007-03-24 12:52

Kan nästan garantera att de vinster man gör på att anropa echo utan paranteser, eller om man använder citationstecken/apostrofer är ingenting som man märker av. Det blir som en piss i Atlanten jämfört med en databasfråga. :) Som fors sa, så är det oftast databasfrågor, db-layout och cache som är flaskhalsen. PHP i sig är rätt snabbt, man ska skriva rätt rejält taskig kod/inkludera hela världen för att det bara pga det ska bli långsammare.

grazzy 2007-03-24 12:55

Du säger att ju större sidan är desto längre tid tar den att ladda conth, det får mig onekligen att fundera på om det inte är så att det är cpun som är flaskhalsen.

Nu har jag inte direkt i i huvudet huruvida php interpreterar all "tänkbar" kod som skall köras till binärformat eller om den gör det allteftersom, men du borde testa att slänga in en av de många binär-cachnings-moduler till php för att se om det hjälper.

boena 2007-03-24 15:21

Vilket är ur prestandasynpunkt bäst när det gäller att lägga in html kod?

Är det bättre att avsluta php-taggen och lägga in html-koden efter den och sen öppna en ny php-tagg för att fortsätta eller ska man köra på en php-tagg som löper över hela sidan och sedan lägga html-kod i echo?


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

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