Speed Up Color Group Mod mit Cache

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Ja, ist ok so!

Die zweite geschwungene Klammer kommt durch diese zusätzliche abfrage:

Code: Alles auswählen

if (!function_exists('color_group_colorize_name'))
{
Eine solche abfrage ist bei dir um alle Funktionen gelegt und stellt sicher das du keine Fehlermeldung erhälst wenn die functions_color_groups.php mehrfach includiert wird, indem die Funktionen nur definiert werden wenn sie nicht bereits exestieren. :)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
GrafCoks
Beiträge: 17
Registriert: Mo 08.Aug, 2005 08:05

Beitrag von GrafCoks »

ok nochmal danke an euch beide ;)

war ja eine schwerre geburt *fg* aber nun klapt ja alles :D

noch was gibt es noch mehr sachen die man so mit den cache so machen kann ??

mfg graf
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Sicher. Sofern es Sinn macht.
Nur: Das meiste ist zu gering, um per Datei gecacht zu werden.
Für den Birthday und Last Visit MOD gibts jeweils schon Caches und andere MODs machen wenig Sinn.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Cachen kann man sehr viel. Aber was und ob es überhaupt sinnvoll ist, hängt extrem vom jeweiligem Board ab und teilweise auch vom Server!
Jedes Board ist optimierbar (ob mittels cache oder einfach nur durch Codeoptimierung)! Aber dafür muss man das Board genau kennen!
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
GrafCoks
Beiträge: 17
Registriert: Mo 08.Aug, 2005 08:05

Beitrag von GrafCoks »

[quote="oxpus - Sa 29.Okt, 2005 21:24";p="46954"]Sicher. Sofern es Sinn macht.
Nur: Das meiste ist zu gering, um per Datei gecacht zu werden.
Für den Birthday und Last Visit MOD gibts jeweils schon Caches und andere MODs machen wenig Sinn.[/quote]

genu für die beiden mod´s ^5 aber die bordsuche gibt mir nichts her.
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Birthday MOD: http://mods.db9.dk/viewtopic.php?p=19989#19989
Last Visit MOD: http://mods.db9.dk/viewtopic.php?p=20453#20453

Du musst aber am Forum dort registriert sein.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
GrafCoks
Beiträge: 17
Registriert: Mo 08.Aug, 2005 08:05

Beitrag von GrafCoks »

[quote="oxpus - So 30.Okt, 2005 10:43";p="46978"]Birthday MOD: http://mods.db9.dk/viewtopic.php?p=19989#19989
Last Visit MOD: http://mods.db9.dk/viewtopic.php?p=20453#20453

Du musst aber am Forum dort registriert sein.[/quote]

THX oxpus ... ich glaub das bin ich ;)
Bicet
Beiträge: 19
Registriert: Di 26.Apr, 2005 09:35

Beitrag von Bicet »

Just to let you know, Oxpus, your old solution was a lot faster on large forum.

Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------------
#
includes/functions_color_groups.php

#
#-----[ FIND ]------------------------------------------------
#
function color_group_colorize_name($user_id, $no_profile = false)
{
   global $board_config, $phpEx, $db, $phpbb_root_path;
   
   // First see if the user is Anon
   if ($user_id != ANONYMOUS)
   {

#
#-----[ AFTER, ADD ]------------------------------------------
#
   // Version cache mod start
   // Change following two variables if you need to:
   $cache_update = 3600; // 1 hours cache timeout. change it to whatever you want
   $cache_file = $phpbb_root_path . '/cache/cg-user' . $user_id .'.php'; // file where to store cache

   $do_update = true;
   if ( (@file_exists($cache_file)) && (empty($disable_color_cache)) )
   {
     $last_update = 0;
     include($cache_file);
     if($last_update > (time() - $cache_update))
     {
       $do_update = false;
     }
   }

   if($do_update)
   {
  // Version cache mod end

#
#-----[ FIND ]------------------------------------------------
#
                     $curr = $row['order_num'];
                     $style_color = 'style="font-weight:bold;color:' . $row['group_color'] . '"';
                  }
               }
         }

#
#-----[ AFTER, ADD ]------------------------------------------
#
      // Version cache mod start
      if(@$f = fopen($cache_file, 'w'))
      {
         fwrite($f, '<' . '?php $last_update = ' . time() . '; $style_color = \'' . $style_color . '\'; $username = \'' . $username . '\'; ?' . '>');
         fclose($f);
         @chmod($cache_file, 0666);
      }
   }
   // Version cache mod end
#
#---[ SAVE/CLOSE ALL FILES ]-----------------------
#
# eom
You can take a look at those:

OLD Cached ColorGroups
http://forum.cellularmagazine.it

NEW Cached ColorGroups
http://forum2.cellularmagazine.it

the difference in time generation itìs really big. Consider the two system nearly equal
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Sure?
You must test on the same forum, not on different ones to compare the generation times!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Bicet
Beiträge: 19
Registriert: Di 26.Apr, 2005 09:35

Beitrag von Bicet »

It's the same exact forum... Btw here's the difference:

on forum2

Known only to me, so with only one person browsing:

First post of this topic caching solution:

Index: Page Generation Time: 3.79s (PHP:91% SQL:9%) SQL queries: 16
Portal: Page Generation Time: 2.68s (PHP:84% SQL:16%) SQL queries: 24
Memberlist: Page Generation Time: 5.9306s (PHP:89% SQL:11%) SQL queries: 10
Reloaded page takes more or less the same time the difference is only of 0.1s


Your first version of caching mod (reoladed page are really faster):

First LOAD:
Index:Page Generation Time: 0.99s (PHP:66% SQL:34%) SQL queries: 49
Portal:Page Generation Time: 2.0809s (PHP:51% SQL:49%) SQL queries: 51
Memberlist:Page Generation Time: 1.64s (PHP:43% SQL:57%) SQL queries: 163

Reloaded Page: (cache duration 24h)
Index:Page Generation Time: 0.93s (PHP:73% SQL:27%) SQL queries: 12
Portal:Page Generation Time: 1.46s (PHP:79% SQL:21%) SQL queries: 24
Memberlist:Page Generation Time: 1.13s (PHP:57% SQL:43%) SQL queries: 13

If you want to compare it on a live session just let me know and I will upload the two versions of file on a restrict period of time,
Zuletzt geändert von Bicet am Fr 13.Jan, 2006 08:33, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

I've not a copy from the "old" one.
Can you please attach your functions_color_groups.php as aa ZIP archive here to take a look?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Bicet
Beiträge: 19
Registriert: Di 26.Apr, 2005 09:35

Beitrag von Bicet »

Yep no problem, the old one is the first one you've written, the new one is the one from the first post on this topic.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Okay Thanks.
I'll check this out later on this afternoon or tomorrow.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Bicet
Beiträge: 19
Registriert: Di 26.Apr, 2005 09:35

Beitrag von Bicet »

Thnx for checking it, I'm not in hurry ;)
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Okay, based on a low different between the loading times I'll not change anything on this script.
It contains no bugs other versions will have, e. g. quotes in usernames or similar.

And caching for 24 hours will be a good compromise.

Regard:
My release will cache each username with it's color definition in a file! Not only the colored users!
Reading this file and formatting will only be faster on bigger forums.

And(!):
I can't beleave that these forums will be the same.
Open the login screen on both will differ them for 2 Queries. And there's no username which must be cached!!! Both cache systems (the old one and my latest one) will not run a query after caching the usernames!
Be sure you have uninstall each code block from old caching add-ons of the color group MOD, specially from common.php!
Zuletzt geändert von oxpus am Di 17.Jan, 2006 20:00, insgesamt 2-mal geändert.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Bicet
Beiträge: 19
Registriert: Di 26.Apr, 2005 09:35

Beitrag von Bicet »

No I don't have enough time to check it BTW, on big board (500+ users), the first one it's really faster, I can assure you.

Otherwise I wouldn't have posted the old code. Tomorrow I will give you a live demonstration. Just updating right now and the board is down.
Jerichos
Beiträge: 1
Registriert: Sa 15.Apr, 2006 23:30

Beitrag von Jerichos »

Hallo!

Hab den Mod installiert. Er scheint zu funktionieren, da die SQL-Abfragen runter gingen und die Cache-Datei angelegt wurde. Nur schnellt die Server-Last nach dem Einbau ins Unermessliche. Server-Load über 20!!! hatte ich grad eben. Keine Aussicht auf Besserung, wenn man etwas wartet. Ein Reboot der Maschine brachte auch keine Besserung. Irgendwas läuft da noch unrund.

Nachdem ich die alten Dateien hochgeladen habe und die Maschine noch einmal durchgestartet habe, liefs wieder wie vorher.

Hatte jemand schon solche Probleme? Hab ich irgendwas übersehen? Oder ist das Verhalten normal?

Danke schon mal für Eure Hilfe und Frohe Ostern!

Gruß Jürgen

Paar Infos zum Board:
- phpBB 2.0.20 mit PlusPaket 1.52
- über 9000 User und über 350.000 Beiträge
- Linux suse10064lamp 2.6.13-15.8-default
- PHP Version 4.4.0
- mysql 4.1.13

Edit:
Hab grad die "alte" Version des Mods getestet. Den Link hat Bicet ja weiter oben gepostet.
Rennt wie irre, funktioniert also tadellos. In der neuen Version ist also irgendwas dabei, was bei unserer Konfiguration zu diesen hohen völlig unakzeptablen Lasten des Servers führt. Wollte ich Euch nur mitteilen. ;)
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Bei 9000 Usern muss hier auch ein extrem grosser Cache angelegt werden. Das sorgt für die extreme Last auf dem Server.
Ich hatte das mal anders versucht, also nur die gefärbten User zu cachen, aber da war ich noch nicht mit fertig und mittlerweile fehlte auch die Zeit, das weiter zu verfolgen.
Daher:
Sorry, wenn die neue Version eher schlechter als die alte ist :!:
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Bei so großen Boards ist IMHO der "Olympus Group Colours" besser als der "Color Groups".
Er ist zwar nicht so komfortabel, aber dafür Performance schonender (oder hab ich da etwas falsches im Kopf?).
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nein, das ist schon richtig: Der ist hier auch enthalten und absolut schnell, da keine extra DB-Abfrage ausgeführt werden muss.
Und in der Regel hat man ja auch nicht soooo viele User zum einfärben, als daß man das nicht per User-Einstellung machen kann.
Ob allerdings im Olympus das auch für Gruppen eingerichtet wird, ist fraglich...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Titus
Beiträge: 235
Registriert: Fr 18.Mär, 2005 22:23

Beitrag von Titus »

@Jerichos
probier mal die functions_color_groups.php aus dem plus 1.53 da wird die cachedatei nur 1x geladen was die lesezugriffe verringern sollte
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

@ Titus
Das Plus verwendet den Cache von oxpus. ;)
oxpus hat geschrieben:Ich hatte das mal anders versucht, also nur die gefärbten User zu cachen, aber da war ich noch nicht mit fertig und mittlerweile fehlte auch die Zeit, das weiter zu verfolgen.
Aaaaaaahhhhhhhh :hh:
Warum hab ich mir eigentlich niemals den Inhalt des Cachefiles angesehen? ^2
Die Lösung ist super einfach!

Code: Alles auswählen

#
#----------[ OPEN ]-------------------------------------
#

functioms_color_groups.php

#
#----------[ FIND ]-------------------------------------
#

         $user_style_color[$user_color_id] = $style_color; 
         $user_style_name[$user_color_id] = addslashes($username); 
 		 $write_string .= '$user_style_name['.$user_color_id.'] = \''.addslashes($username)."';\n"; 
         if ($style_color != '') 
		 { 
			$write_string .= '$user_style_color['.$user_color_id."] = '$style_color';\n"; 
		 } 

#
#----------[ REPLACE WITH ]-----------------------------
#

         $user_style_color[$user_color_id] = $style_color; 
         $user_style_name[$user_color_id] = addslashes($username); 
         if ($style_color != '') 
		 { 
			$write_string .= '$user_style_name['.$user_color_id.'] = \''.addslashes($username)."';\n"; 
			$write_string .= '$user_style_color['.$user_color_id."] = '$style_color';\n"; 
		 }
Damit gehen die Queries zwar wieder ein wenig hoch (eine abfrage für jeden User der keiner Farbgruppe angehört), weil nur noch User die gefärbt werden auch gecached werden. Aber dennoch gibt es einen nicht unerheblichen Performanceschub, da die komplizierte abfrage der Gruppenzugehörigkeit entfällt. :D
Zuletzt geändert von AmigaLink am Mo 17.Apr, 2006 17:17, insgesamt 1-mal geändert.
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Titus
Beiträge: 235
Registriert: Fr 18.Mär, 2005 22:23

Beitrag von Titus »

na ajax ist da doch noch nicht so ausgereift :D

[quote="AmigaLink";p="57898"]@ Titus
Das Plus verwendet den Cache von oxpus. ;)

[/quote]
schon, mit dem unterschied bisher wurde für jeden user das cachefile gesondert geladen - jetzt nur 1x pro seitenaufruf

die beste lösung ist aber wirklich der andere farbenhack
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

na ajax ist da doch noch nicht so ausgereift :D
Ach du schreck. :eek:
(Gut das ich mir AJAX bisher verkniffen habe.)
Hab's mal berichtigt. :)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
WileCoyote
Beiträge: 47
Registriert: Mi 26.Apr, 2006 04:42
Wohnort: Österreich
Kontaktdaten:

Beitrag von WileCoyote »

Bei dem Versuch den Cache einzusetzen, bekomme ich folgende Fehlermeldung:

Code: Alles auswählen

Could not get username for new registered user

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2

SELECT username FROM phpbb_users WHERE user_id = 

Line : 371
File : functions_color_groups.php
lg,
WileCoyote
Antworten