Welcome, Guest. Please Login or Register.
November 28, 2024, 08:39:25 AM
Home Help Search Log in Register
News: SMF is the next generation in forum software, almost completely re-written from the ground up, make sure you don't fall for cheap imitations that suffer from feature bloat!

YaBB SE Community  |  German User Help  |  Hilfe bzw. Diskussionen zu Mods  |  [EXP] Kleine Optimierung « previous next »
Pages: [1] Reply Ignore Print
Author Topic: [EXP] Kleine Optimierung  (Read 612 times)
chris
Guest
[EXP] Kleine Optimierung
« on: November 07, 2002, 11:15:27 AM »
Reply with quote

([EXP] = EXPerimental! Und GENAU SO ist diese Spielerei zu verstehen)

1. "Subs.php" öffnen

2. Am Anfang des Files findet sich "$yyheaderdone = 0;" - in der Zeile danach fügt man


$onlineCache = array();


ein.

3. Die komplette Funktion "OnlineStatus" durch folgende ersetzen:

function OnlineStatus($user)
{

   global $db_prefix,$onlineCache;

   if (!isset($onlineCache[$user]))
   {
      $result         = mysql_query('SELECT * FROM '.$db_prefix.'log_online WHERE identity = "'.$user.'" LIMIT 1');
      $onlineCache[$user]   = mysql_num_rows($result);
   }

   return $onlineCache[$user];

}



Vorteil:

Die alte Version lief grundsätzlich die ganze  log_online Tabelle durch um festzustellen ob ein User online ist. angenommen es waren 100 User gleichzeitig im Board hiess das: bis zu 99 unnötige Zugriffe auf die Tabelle.

Die neue Funktion greift nur einmal zu, sollte also schneller sein.

Ausserdem wird über das Array $onlineCache geregelt, dass eine Abfrage pro Scriptaufruf auch nur einmal für einen User ausgeführt wird. Dies spielt beim Anzeigen eines Threads eine grosse Rolle. dort wurde sonst für JEDEN Beitrag 2 mal die Funktion aufgerufen und damit pro Beitrag 2 mal die Tabelle durchsucht. Im schlimmsten Fall konnte also folgendes passieren: 100 User online -> 100 Einträge in der log-Tabelle -> 15 Beiträge werden angezeigt mit Online-Indikator -> 30 Aufrufe von Onlinestatus -> 30*100 Lesezugriffe auf die Log-Tabelle....

Jetzt passiert folgendes: 15 Beiträge von 10 Usern -> 30 Zugriffe auf OnlineStatus -> 10 DB-Zugriffe -> plus 20 mal aus Cache

Hab das Teil nur kurz testen können... wenn jemand nen grosses Board hat kann er es ja mal ändern und Bescheid geben obs sauber klappt und Performance bringt ;D
« Last Edit: November 07, 2002, 11:44:40 AM by Christian Land » Logged
Daniel D.
Mod Team
YaBB God
*****
Posts: 2935


Re:[EXP] Kleine Optimierung
« Reply #1 on: November 07, 2002, 09:59:48 PM »
Reply with quote

Der Meister hat gesprochen. :P
Logged

Eloya
Full Member
***
Posts: 127


Magistrat

nschunter@eloya.net WWW
Re:[EXP] Kleine Optimierung
« Reply #2 on: November 08, 2002, 12:42:49 PM »
Reply with quote

Auf meinem Board (fast 150.000 Beiträge, 1.030 Mitglieder, 2.000 Posts pro Tag und im Schnitt 40 Mitgliedern online) funktioniert es.

Liebe Grüsse,

Nico
Logged

"Der Unterschied zwischen Magie und Alltag ist die Betrachtungsweise!"
http://www.travar.de
joker
Jr. Member
**
Posts: 85


Fanatiker sind zu allem fähig, sonst aber zu nix!

Re:[EXP] Kleine Optimierung
« Reply #3 on: November 08, 2002, 02:29:00 PM »
Reply with quote

Bei mir läufts auch ohne Probleme. (1.800 user; ~800 post/Tag)
Obs schneller geht kann ich nicht beurteilen, da wir dbzgl. mehrere Maßnahmen ergiffen haben.
Logged

MfG joker ;)
Pages: [1] Reply Ignore Print 
YaBB SE Community  |  German User Help  |  Hilfe bzw. Diskussionen zu Mods  |  [EXP] Kleine Optimierung « previous - next »
 


Powered by MySQL Powered by PHP YaBB SE Community | Powered by YaBB SE
© 2001-2003, YaBB SE Dev Team. All Rights Reserved.
SMF 2.1.4 © 2023, Simple Machines
Valid XHTML 1.0! Valid CSS

Page created in 0.049 seconds with 21 queries.