Här är några personliga måsten som jag alltid ställer in i mina LAMP-applikationer.
-
Installera mod_deflate för apache, och använd inte PHP:s gzip-hanterare. mod_deflate låter dig komprimera statiskt innehåll, som javascript/css/static html, såväl som den vanliga dynamiska PHP-utgången, och det är en sak mindre du behöver oroa dig för i din kod.
-
Var försiktig med .htaccess-filer! Att aktivera .htaccess-filer för kataloger i din app innebär att Apache måste skanna filsystemet ständigt och leta efter .htaccessdirectives. Det är mycket bättre att placera direktiv i huvudkonfigurationen eller en vhost-konfiguration, där de laddas. Varje gång du kan bli av med en åtkomstfil på katalognivå genom att flytta den till en huvudkonfigurationsfil, sparar du åtkomsttid på disken.
-
Förbered din applikations databaslager för att använda en anslutningshanterare av något slag (jag använder en Singleton-applikationer). Det är inte särskilt svårt att göra, och att minska antalet databasanslutningar som din applikation öppnar sparar resurser.
-
Om du tror att din applikation kommer att belastas avsevärt, kan memcached utföra mirakel. Ha detta i åtanke medan du skriver din kod... kanske en dag istället för att skapa objekt på flugan, kommer du att få dem från memcachad. Lite framförhållning kommer att göra implementeringen smärtfri.
-
När din app är igång, ställ in MySQL:s långsamma frågetid till ett litet antal och övervaka den långsamma frågan loggat. Detta visar dig var dina problemfrågor kommer ifrån och låter dig optimera dina frågor och index innan de blir ett problem.
-
För seriösa prestandatweakers, kommer du att vilja kompilera PHP från källan. Installation från ett paket installerar många bibliotek som du kanske aldrig kommer att använda. Eftersom PHP-miljöer laddas in i varje instans av en Apache-tråd, blir även en 5 MB minnesoverhead från extra bibliotek snabbt 250 MB förlorat minne när det inte finns 50 Apache-trådar. Jag håller en lista över min standard ./configure-rad jag använder när jag bygger PHP här , och jag tycker att det passar de flesta av mina applikationer. Nackdelen är att om du behöver ett bibliotek måste du kompilera PHP för att få det. Analysera din kod och testa den i en utvecklingsmiljö för att se till att du har allt du behöver.
-
Förminska ditt Javascript.
-
Var beredd på att flytta statiskt innehåll, som bilder och video, till en icke-dynamisk webbserver. Skriv din kod så att alla webbadresser för bilder och video enkelt kan konfigureras för att peka på en annan server i framtiden. En webbserver optimerad för statiskt innehåll kan enkelt betjäna tiotals eller till och med hundratals gånger snabbare än en dynamisk innehållsserver.
Det är vad jag kan tänka på över huvudet. Att googla runt efter bästa PHP-praxis kommer att hitta många tips om hur man skriver snabbare/bättre kod också (som:echo
är snabbare än print
).