FAQ |
Kalender |
2007-03-23, 10:55 | #1 | |||
|
||||
Mycket flitig postare
|
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. |
|||
Svara med citat |
2007-03-23, 11:07 | #2 | ||
|
|||
Bara ett inlägg till!
|
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.
|
||
Svara med citat |
2007-03-23, 11:30 | #3 | |||
|
||||
Mycket flitig postare
|
Ja otydligt skrivet av mig vi använder: echo "foo";
|
|||
Svara med citat |
2007-03-23, 15:05 | #4 | ||
|
|||
Banned
|
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 , ' '; |
||
Svara med citat |
2007-03-23, 18:23 | #5 | |||
|
||||
Klarade millennium-buggen
|
Citat:
|
|||
Svara med citat |
2007-03-24, 10:20 | #6 | |||
|
||||
Flitig postare
|
Japp nytt för mig också. Man tackar
|
|||
Svara med citat |
2007-03-24, 10:40 | #7 | ||
|
|||
Medlem
|
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.
|
||
Svara med citat |
2007-03-24, 12:52 | #8 | |||
|
||||
Flitig postare
|
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.
|
|||
Svara med citat |
2007-03-24, 12:55 | #9 | ||
|
|||
Klarade millennium-buggen
|
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. |
||
Svara med citat |
2007-03-24, 15:21 | #10 | |||
|
||||
Flitig postare
|
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? |
|||
Svara med citat |
Svara |
|
|