Avatar billede foxwell Nybegynder
10. september 2008 - 12:58 Der er 7 kommentarer og
1 løsning

Langsomme php sider - hvilken funktion er synderen?

Hej Experter,

jeg har et site kørende som er begyndt at hænge lidt i det på nogen sider. Er der en måde hvor jeg kan finde ud af hvilke funktioner det er der gør siderne langsomme?

mvh - foxwell
Avatar billede w13 Novice
10. september 2008 - 13:09 #1
Jeg kender ikke rigtig nogen værktøjer til det.

Men du kan enten vise os steder, du tror kan være slemme, eller du kan måske prøve udelukkelsesmetoden og teste din side uden forskellige dele af koden.
Avatar billede w13 Novice
10. september 2008 - 13:10 #2
Som regel skyldes det enten løkker eller databasekald.
Avatar billede amews_aj Nybegynder
10. september 2008 - 13:14 #3
Med nogle udviklingsmiljøer kan du debugge, og finde den problematiske kode.
Fx TSW PhpCoder har den funktion. www.tsw.dk
Avatar billede j4k0b Nybegynder
10. september 2008 - 13:59 #4
Her er en måde at give dig et vejledende udtryk for, hvor langt tid enkelte stykker kode på din side tager at udføre. Vær opmærksom på, at du ikke kan regne med resultatet! Hvis du var proffesionel og ville teste tiden for enkelte funktioner/dele af din kode, skulle du tage højde for CPU tid, andre processor i CPU'en osv. som kan være skyld i små udsving. Jeg har aldrig arbejdet med det i PHP så jeg kender ikke til nogen færdige moduler til dette formål.


function measureTimeDiff($starttime) {
    $startarray = explode(" ", $starttime);
    $starttime  = $startarray[1] + $startarray[0];

    $endtime = microtime();
    $endarray = explode(" ", $endtime);
    $endtime = $endarray[1] + $endarray[0];
    $totaltime = round(($endtime - $starttime), 5);

    return $totaltime;
}

function funktionDerTagerTid() {
    $arr = array();
    for($i=0; $i<=500000; $i++) {
        $arr[] = $i;
    }
}


// Test
$start = microtime(); // Angiver hvornår du vil starte med at måle tid
funktionDerTagerTid(); // Kode som skal måles tiden for
print measureTimeDiff($start); // Udskriver tiden det tog (i sekunder)
Avatar billede foxwell Nybegynder
16. september 2008 - 09:09 #5
Ser ikke ud som om der er for mange muligheder, men dette er dog en mulighed - takker =)
Avatar billede foxwell Nybegynder
16. september 2008 - 09:12 #6
Har prøvet at acceptere svaret i 3 forskellige browsere nu (firefox, Opera, IE7) men der sker ikke noget... prøver igen senere.
Avatar billede w13 Novice
16. september 2008 - 10:31 #7
Du skal huske at markere brugerens navn i boksen ved siden af "Accepter"-knappen.
Avatar billede foxwell Nybegynder
21. januar 2009 - 22:38 #8
/me grimmer sig

Tak w13, det hjalp en del... *blush*
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester