Umgeschriebene CMSMS Topic is solved

Deutschsprachiger Support für CMS Made Simple
Post Reply
Piratos

Umgeschriebene CMSMS

Post by Piratos »

Ich habe das schon mal vor sehr langer Zeit gemacht, die komplette CMSMS auf Mysql Direktzugriff umzuschreiben.

Das mache ich nun mal wieder aber diesmal auf Basis meiner eigenen Mysql Klasse.

Es fällt die Unterstützung der Seq - Tabellen vollkommen weg - die werden nicht mehr benötigt.

Der Bedarf der Klasse liegt bei ca. 65 KB und damit weit unter dem was Adodb Lite benötigt.

Der Code reduziert sich teils ansehnlich.

Es werden Transaktionen verwendet  (4.1x Mysql).

Mal sehen wie das so läuft.
cyberman

Re: Umgeschriebene CMSMS

Post by cyberman »

Was hat dich veranlasst, diesen Aufwand nochmals zu betreiben?
Piratos

Re: Umgeschriebene CMSMS

Post by Piratos »

Mehrere Dinge  :

Zum einen die beiden produktiven 0.13 er Betreiber, die Firmen scheuen einen Umstieg auf andere CMS , meckern aber auch über die Langsamkeit (bei der 0.13) - also muss da was her, was schneller als 0.13 und somit wesetnlich schneller als 1.02 ist, bei  leichtem Umstieg.

Dann sind in der 1.02 diverse Dinge , die in 0.13 zur Perfomanceverbesserung geändert wurden, hinten durch die Brust ins Auge wieder da - Grund - es waren mehrer Schreiberlinge am Werke und die haben nicht nachgedacht
Ich habe da rund 70 Fundstellen, die im wesentlichen die Performancedifferenz zur 0.13 ausmachen und ich verspüre nicht die geringste Lust den ganzen Müll bei jeder neuen Version zu posten.

Ich lasse einige Dinge komplett verschwinden, die unterm Strich  mehr Last als Nutzen bringen z.B. die berühmte contentcache.php  (steigert die Perfomance rasant).

Ich benötige in einem Fall Transaktionen und zwar mit Sqlite, da dort eine alte Mysql Version im Einsatz ist, die man nicht updaten will auf mysqli.

Die Klasse ist sehr einfach auf Sqlite umzuschreiben.

Nachtrag:

Ich benötige auf alle Fälle Sqlite und muss  neben Mysql mehrere DB's ansteuern, dass ist mit Adodb zwar machbar aber zu welchem Preis (RAM) und so erhalten die betreffenden Module (sind nun 4 - aber keine GPL) jeweils eine eigene Sqlite Datenbank und damit hat sich mein Problem.
Last edited by Piratos on Mon Oct 16, 2006 4:00 pm, edited 1 time in total.
Piratos

Re: Umgeschriebene CMSMS

Post by Piratos »

Die Umstellung von Adodb Lite auf meine Mysql Klasse funzt bereits voll.

Erstelle nunmehr die gleiche Klasse für Sqlite.

Danach erfolgen die direkten Eingriffe.
cyberman

Re: Umgeschriebene CMSMS

Post by cyberman »

Piratos wrote: Erstelle nunmehr die gleiche Klasse für Sqlite.
Wenn du jetzt noch die gleiche Klasse für PostgreSQL erstellst, könnte man ADOdb lite komplett abhängen  ;D ...
Piratos

Re: Umgeschriebene CMSMS

Post by Piratos »

Könnte man machen, aber mit PG will ich das eigentlich, hat kaum einer im Einsatz - bin eher dafür PG komplett zu streichen.

Drupal hat ja auch diese Techik mit jeweils einer Klasse für jedes DB System.

Man muss berücksichtigen, dass es keine 1:1 Umsetzung von Adodb ist (sonst könnte man es ja so belassen).

Einige Funktionsnamen sind zwar im Namen identisch , ja sogar von der Wirkung, aber es fehlt die grosse Bremse des Resultsetsystems von Adodb.

Beispiel:

$result=$db->Execute('Anweisung');  ertzugt bei Adodb eine Resultklasse, bei mir einen normalen Mysql Rückgabewert.

Unter Adodb  würde die Asuwertung dann z.B. so sein)

foreach ($row=$result->Fetchrow() )  // also auf die Resultsetklasse

unter meiner Klasse

foreach ($row=$db->Fetch($result)) // also über die DB Connection

Davon abgesehen hat Fetch bei mir verschiedene Zusatzmöglichkeiten.

Das bedeutet - nur die Lib austauschen ist nicht, man muss auch den Code teils ändern.
Piratos

Re: Umgeschriebene CMSMS

Post by Piratos »

Na mal schon ein paar Ergebnisse:

Xampp 1.54a unter Windows XP, Webserver auf Debug eingestellt:
Standardinstallation von CMSMS

Original 1.02


Veränderte 1.02 (Eigene Mysql Klasse , eventhandler rausgeworfen, debug_buffer rausgeworfen, contentcache.php als gz gezippte Datei


Das ist mal eben eine fast 29% bessere Perfomance.

Man beachte Windows Server ist langsamer als Linux, die absoluten Zeiten sind unter Linux sehr viel besser und sie sind noch besser wenn der Webserver normal eingestellt ist - das ist hier auch kein Masstab. Interessant ist lediglich die relative Veränderung in %.

Eine solche Version wird auch nie hier bei CMSMS das Licht der Welt erblicken, es soll lediglich mal angezeigt werden, was man aus CMSMS heraus holen kann, wenn man sich ernsthaft darum bemührt, was User haben wollen.
Piratos

Re: Umgeschriebene CMSMS

Post by Piratos »

Bei der Bearbeitung ist mir aufgefallen, dass der Adminteil von einer Optimierung so weit weg ist, dass man noch nicht einmal ein jemals vorgenommener Versuch einer Optimierung  erkennbar ist.

Da liegt noch sehr viel  drin  - aber keiner macht da wohl etwas.

Mit dem Mysql - Teil bin ich durch, müsste nur noch das Install anpassen dann hätte ich eigentlich das was ich mal als Powerweb bezeichnet hatte.

Sollte ich vielleicht so veröffentlichen, noch ein paar Module dazu anpassen und Bingo, dann könnte ich meinen eigenen Kram als Standardcms titulieren , müsste dann aber 2 pflegen  - oh mann !
Piratos

Re: Umgeschriebene CMSMS - Linux Vergleichswerte

Post by Piratos »

Vergleichswerte unter Linux auf einem eher langsamen AMD 2600+.

Gleiche Module installiert, gleicher Inhalt - Original 1.02 bis auf die Mysql Zeit unverändert.


Dreifacher  Aufruf der Seite Home, jeweils die besten Werte:

1.02 Werte

enerated in 0.233064 seconds by CMS Made Simple (not cached) using 19 SQL queries (Mysql-Time = 0.0124378204346) and 4773456 bytes of memory

1.02 geändert

Generated in 0.145908 seconds by CMS Made Simple (not cached) using 22 SQL queries (Mysql Time = 0.0157544612885 seconds) and 3852880 bytes of memory

Original benötigt rund 60% mehr Zeit, verbruzzelt 920576 mehr an RAM , ist wegen der 3 Queries weniger in der Mysql - Zeit um 0,0033 Sekunden schneller.
Piratos

Re: Umgeschriebene CMSMS

Post by Piratos »

Ich werde die geänderte CMSMS Version in demnächst bei mir veröffentlichen , sobald ich das install angepasst habe und als Powerweb unter etwas anderen Vorzeichen pflegen.

Der Grund ist ganz einfach  - nachdem ich dachte , dass in der geänderten Version selbst fabrizierte Bugs enthalten sind, musste ich feststellen, dass diese im Original ebenfalls vorhanden sind und als ich dann noch feststellen musste, dass diese alt sind und schon längst mal von jemanden gemeldet wurden habe ich mich so geärgert, dass ich mir dachte - was nützt das schönste melden, wenn nichts passiert.

Das kann ich auch selbst trotz meiner sehr wenigen Zeit besser machen.

Um es gleich zu sagen - die Version ist NICHT sozusagen pinkompatibel - aber für neue Sachen gut.

Diverse Dinge die keinem so richtig etwas nützen, habe ich komplett entfernt.  Es wird weder ein Soap noch ein Modulemanager geben, ebenso fehlt das berühmte Search Modul, da dieses bei der Installation oder beim reindex auf vielen Servern ein Problem ist mit der max_execution_time - Einstellung, einen Eventmanager wird man ebenfalls nicht finden, aber ebenso wenig den debug_buffer, der zig mal im normalen Betrieb aufgerufen wird und dem Besucher nur Zeitverluste bringt.

Module die es hier im DEV gibt sind in der Regel leicht umzustellen.

Alles weitere wird sich finden und es wird auch nicht hier besprochen.

Damit endet auch meine direkte Zusammenarbeit mit CMSMS -  alle vorhandenen Projekte hier von mir, egal ob angefangen oder fertig, kann ich hier nicht mehr pflegen, denn dazu habe ich die Zeit dann nicht mehr.
Post Reply

Return to “German - Deutsch”