Speed Up Color Group Mod mit Cache

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen

Moderator: Moderatoren

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!

Beitragvon AmigaLink » Sa 29.Okt, 2005 20:19 • Beitrag als PDF

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]
Benutzeravatar
AmigaLink
Moderator
Moderator
 
Beiträge: 6211
Registriert: Mi 03.Mär, 2004 10:05
Wohnort: NRW

Beitragvon GrafCoks » Sa 29.Okt, 2005 20:37 • Beitrag als PDF

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
GrafCoks
User
User
 
Beiträge: 17
Registriert: Mo 08.Aug, 2005 08:05

Beitragvon oxpus » Sa 29.Okt, 2005 21:24 • Beitrag als PDF

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 ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!
Benutzeravatar
oxpus
Administrator
Administrator
 
Beiträge: 28979
Registriert: Mo 27.Jan, 2003 23:13
Wohnort: Bad Wildungen

Beitragvon AmigaLink » Sa 29.Okt, 2005 21:26 • Beitrag als PDF

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]
Benutzeravatar
AmigaLink
Moderator
Moderator
 
Beiträge: 6211
Registriert: Mi 03.Mär, 2004 10:05
Wohnort: NRW

Beitragvon GrafCoks » Sa 29.Okt, 2005 22:15 • Beitrag als PDF

oxpus - Sa 29.Okt, 2005 21:24";p="46954 hat geschrieben: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.


genu für die beiden mod´s ^5 aber die bordsuche gibt mir nichts her.
GrafCoks
User
User
 
Beiträge: 17
Registriert: Mo 08.Aug, 2005 08:05

Beitragvon oxpus » So 30.Okt, 2005 11:43 • Beitrag als PDF

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 ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!
Benutzeravatar
oxpus
Administrator
Administrator
 
Beiträge: 28979
Registriert: Mo 27.Jan, 2003 23:13
Wohnort: Bad Wildungen

Beitragvon GrafCoks » So 30.Okt, 2005 15:30 • Beitrag als PDF

oxpus - So 30.Okt, 2005 10:43";p="46978 hat geschrieben: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.


THX oxpus ... ich glaub das bin ich ;)
GrafCoks
User
User
 
Beiträge: 17
Registriert: Mo 08.Aug, 2005 08:05

Beitragvon Bicet » Fr 13.Jan, 2006 03:39 • Beitrag als PDF

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
Bicet
User
User
 
Beiträge: 19
Registriert: Di 26.Apr, 2005 09:35

Beitragvon oxpus » Fr 13.Jan, 2006 09:14 • Beitrag als PDF

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 ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!
Benutzeravatar
oxpus
Administrator
Administrator
 
Beiträge: 28979
Registriert: Mo 27.Jan, 2003 23:13
Wohnort: Bad Wildungen

Beitragvon Bicet » Fr 13.Jan, 2006 09:19 • Beitrag als PDF

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 09:33, insgesamt 1-mal geändert.
Bicet
User
User
 
Beiträge: 19
Registriert: Di 26.Apr, 2005 09:35

Beitragvon oxpus » Fr 13.Jan, 2006 09:37 • Beitrag als PDF

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 ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!
Benutzeravatar
oxpus
Administrator
Administrator
 
Beiträge: 28979
Registriert: Mo 27.Jan, 2003 23:13
Wohnort: Bad Wildungen

Beitragvon Bicet » Fr 13.Jan, 2006 09:46 • Beitrag als PDF

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.
Bicet
User
User
 
Beiträge: 19
Registriert: Di 26.Apr, 2005 09:35

Beitragvon oxpus » Fr 13.Jan, 2006 16:49 • Beitrag als PDF

Okay Thanks.
I'll check this out later on this afternoon or tomorrow.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!
Benutzeravatar
oxpus
Administrator
Administrator
 
Beiträge: 28979
Registriert: Mo 27.Jan, 2003 23:13
Wohnort: Bad Wildungen

Beitragvon Bicet » Mo 16.Jan, 2006 22:13 • Beitrag als PDF

Thnx for checking it, I'm not in hurry ;)
Bicet
User
User
 
Beiträge: 19
Registriert: Di 26.Apr, 2005 09:35

Beitragvon oxpus » Di 17.Jan, 2006 20:59 • Beitrag als PDF

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 21:00, insgesamt 2-mal geändert.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!
Benutzeravatar
oxpus
Administrator
Administrator
 
Beiträge: 28979
Registriert: Mo 27.Jan, 2003 23:13
Wohnort: Bad Wildungen

Beitragvon Bicet » Di 17.Jan, 2006 21:05 • Beitrag als PDF

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.
Bicet
User
User
 
Beiträge: 19
Registriert: Di 26.Apr, 2005 09:35

Beitragvon Jerichos » So 16.Apr, 2006 19:11 • Beitrag als PDF

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. ;)
Jerichos
User
User
 
Beiträge: 1
Registriert: Sa 15.Apr, 2006 23:30

Beitragvon oxpus » So 16.Apr, 2006 21:21 • Beitrag als PDF

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 ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!
Benutzeravatar
oxpus
Administrator
Administrator
 
Beiträge: 28979
Registriert: Mo 27.Jan, 2003 23:13
Wohnort: Bad Wildungen

Beitragvon AmigaLink » So 16.Apr, 2006 22:53 • Beitrag als PDF

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
AmigaLink
Moderator
Moderator
 
Beiträge: 6211
Registriert: Mi 03.Mär, 2004 10:05
Wohnort: NRW

Beitragvon oxpus » So 16.Apr, 2006 23:02 • Beitrag als PDF

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 ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!
Benutzeravatar
oxpus
Administrator
Administrator
 
Beiträge: 28979
Registriert: Mo 27.Jan, 2003 23:13
Wohnort: Bad Wildungen

Beitragvon Titus » So 16.Apr, 2006 23:58 • Beitrag als PDF

@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
Titus
User
User
 
Beiträge: 235
Registriert: Fr 18.Mär, 2005 23:23

Beitragvon AmigaLink » Mo 17.Apr, 2006 00:47 • Beitrag als PDF

@ 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]
Benutzeravatar
AmigaLink
Moderator
Moderator
 
Beiträge: 6211
Registriert: Mi 03.Mär, 2004 10:05
Wohnort: NRW

Beitragvon Titus » Mo 17.Apr, 2006 12:08 • Beitrag als PDF

na ajax ist da doch noch nicht so ausgereift :D

AmigaLink";p="57898 hat geschrieben:@ Titus
Das Plus verwendet den Cache von oxpus. ;)


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
Titus
User
User
 
Beiträge: 235
Registriert: Fr 18.Mär, 2005 23:23

Beitragvon AmigaLink » Mo 17.Apr, 2006 17:20 • Beitrag als PDF

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
AmigaLink
Moderator
Moderator
 
Beiträge: 6211
Registriert: Mi 03.Mär, 2004 10:05
Wohnort: NRW

Beitragvon WileCoyote » So 21.Mai, 2006 04:31 • Beitrag als PDF

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
Benutzeravatar
WileCoyote
User
User
 
Beiträge: 47
Registriert: Mi 26.Apr, 2006 04:42
Wohnort: Österreich

VorherigeNächste

Zurück zu phpBB 2 Support Board + Modifikationen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste