Någon som vet något bra program för att göra någon profiling av PHPskript?
Hittade ett program som heter PHPed men det visar bara 20 rader i profiling när man bara har testversion. kostar lite för mycket att skaffa som privatperson.
Måste väl finnas något gratisprogram, det finns det ju alltid :-)
Vill gärna veta var det spenderas mest minne samt tid i skripten.
Rent generellt skulle jag säga att man inte behöver bry sig om att optimera sin phpkod om man
vet vad man håller på med, och
använder databas till sina skript.
Varför? Jo, om man vet vad man håller på med gör man inga bisarra kodsnyttar som kan stå och snurra i 20 sekunder för att man har 40 nästlade whileloopar när man lika gärna kan anropa en inbyggd funktion i php som gör samma sak. Som exempel kan jag nämna att jag i början av min tid som phpkodare ägnade en halv dag till att konvertera några rader C-kod för att beräkna huruvida det var skottår eller ej för ett visst år, något som jag sedan fick reda på (av en skrattande php-kodande kompis för övrigt) lika gärna kunde göras med date().
Leker man med databaser går den största tiden av ett skripts livslängd åt till att läsa och skriva till databasen. Krutet ska då istället spenderas på att optimera databasstrukturen.
Ville kolla lite var mitt program slukade minne, tyckte att jag återanvände variabler.
var så att jag ville hämta ut ca 300 000 poster från databasen och sedan konvertera de i php till en ny tabell. var en del text-parsing som fick göras med regulära uttryck.
problemet var att skriptet åt upp 4-500mb minne.
då tänkte jag att om jag hämtar ut 1-10 000 poster åt gången så skulle det inte ta upp så mycket minne. men den slukade ändå lika mycket.
var därför jag ville kolla var i mitt program minnet gick åt.
märkte då även att objekt som skickas till en funktion kopieras till den och därmed går det åt mer minne.
Försökte även använda unset metoden för att verkligen frigöra minnet men det hjälpte inte heller.
Verkar vara så, har inte kollat upp det tidigare, av någon dum anledning hade jag bara förutsett att man skickade vidare variablen/objektet som en referens. Ett misstag jag inte ska göra om igen när jag behandlar stora data igen. :-(