Avatar billede plindstrup Nybegynder
08. januar 2010 - 01:43 Der er 1 kommentar og
1 løsning

Visning af online brugere

Hej

Jeg har en funktion på min hjemmeside der viser antal online brugere. Men det sløver siden virkelig meget - det tager flere sekunder at loade siden. Problemet forsvinder så snart jeg fjerner funktionen.

Er der mon nogen der kan sige hvad jeg gør galt?
Jeg henter antal online brugere med følgende kode:


function getUsersOnline()
{
    $count = 0;
    $idling = time()-300;
    $handle = opendir(session_save_path());
    if ($handle == false) return -1;
    while (($file = readdir($handle)) != false)
    {
        if (ereg("^sess", $file))
        {
            $last_access = filemtime(session_save_path().'/'.$file);
            if($last_access >= $idling)
            {
                $count++;
            }
        }
    }
    closedir($handle);
    return $count;
}

$ocount = getUsersOnline();
if($ocount == "0")
{
    $ocount = "1";
}
STemplate::assign('ocount',$ocount);
Avatar billede jensgram Nybegynder
08. januar 2010 - 10:48 #1
Hmm, hvis gamle sessioner ikke bliver slettet fra din save-path så er der potentielt MANGE filer at kigge i!

Prøv at se, om ikke der er nogle interessant session-relaterede garbage-collection direktiver til din server.

Mikrooptimering:
ereg("^sess", $file) er ikke optimal til denne type match.
Jeg ville bruge strpos($file, 'sess') === 0 eller substr($file, 0, 4) === 'sess' i stedet.
Avatar billede plindstrup Nybegynder
01. november 2010 - 00:19 #2
Fandt aldrig problemet, men valgte at droppe funktionen.

Lukket
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
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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