2011-01-06 11 views
0

Wir haben ein kleines Skript, das Memcache verwendet, um gleichzeitige Sitzungen zu verfolgen, wobei der Client alle 10 Sekunden eine neue Anfrage stellt, um seine Sitzung zu "erneuern" und auch die neueste Anzahl von Benutzern online zu bekommen.Wie kann ich dieses Code-Snippet optimieren, um es schneller und mit weniger Platzbedarf auszuführen?

$session = $_GET['session']; 
$streamid = $_GET['streamid']; 

if(!is_null($session) && !is_null($streamid)) { 
    $memcache = new Memcache; 
    $memcache->connect('localhost', 11211); 

    $data = $memcache->get($streamid); 

    if($data === false) { 
     $data = array($session => time()+10); 

     $memcache->add($streamid,$data,0,10); 
    } else { 
     $now   = time(); 
     $streamCount = count($data); 

     for($i=0;$i<$streamCount;$i++) { 
      if($data[$i] > $now) {  
        unset($data[$i]); 
      } 
     } 

     $data[$session] = time()+10; 
    } 

    echo count($data); 
} else { 
    echo 'no session or stream specified'; 
} 
+1

Es ist "seine Sitzung". –

+4

Sie stellen hier wirklich keine Frage. Ihr Titel besagt, dass Sie Hilfe beim Optimieren des Snippets benötigen, aber die Frage selbst gibt nur Code für uns frei. Was genau möchten Sie tun? Was hast du bisher versucht? Was sind deine Ideen? –

+0

Es tut mir leid, ich musste es mehrmals einreichen, um die Formatierung richtig zu machen ... –

Antwort

2

Haben Sie versucht, dies bereits ausgeführt? Müssen Sie es optimieren? Vielleicht funktioniert es so, wie du es gerade willst. Es scheint, als wäre eine bessere Lösung, es zu entkoppeln und es so sauber wie möglich zu schreiben. Setzen Sie Timer um Anrufe und wenn Sie etwas langsam sehen, dann versuchen Sie, diesen Code zu beheben. Optimieren Sie nicht, wenn Sie dies nicht tun müssen.

Verwandte Themen