Performancebremse zum einen wegen erhöhtem RAM Verbrauch und Nichtnutzung von Adodb Modulen und die Verwendung von unterschiedlichen Funktionen die aber angeblich das gleiche ausführen.
Schwierig das zu verfolgen da er mal von Adodb und mal von Adodb Lite spricht.
GetAll und GetArray soll identisch sein.
Schauen wir mal in das Adodb Manual:
GetAll($sql,$inputarr=false)
Executes the SQL and returns the all the rows as a 2-dimensional array. The recordset is discarded for you automatically. If an error occurs, false is returned.GetArray is a synonym for GetAll.GetArray([$number_of_rows])
Generate a 2-dimensional array of records from the current cursor position, indexed from 0 to $number_of_rows - 1. If $number_of_rows is undefined, till EOF.Wer das liest muss zu der Meinung kommen das in dem Manual etwas nicht stimmen kann.
GetAll führt eine SQL aus während GetArray das hier nicht macht sondern ab Cursor solange liest bis number_of_rows erfüllt ist.
Ergebnis: CMSMS nutzt gerade mal 51% der von ADOdb lite bereit gestellten Funktionen. Im Bereich der Extensions ist das Bild noch etwas dramatischer - da sind es gerade mal 31% Nutzung (bei knapp 290k Overhead)
Hier wird klar von der Lite Version gesprochen.
Das Problem von externen Libs besteht darin das andere Programmierer eine solche Lib kennen und verwenden wollen und dann natürlich auch die darin angebotenen Funktionen die natürlich nur dann nutzbar sind wenn sie eingebunden wurden.
Und diese Funktionen sind ganze Sammlungen in einem Modul.
Module wie date oder transaction sind nicht zu verwechseln mit PHP Date und ähnliches.
Date ermöglicht den Zugriff auf die Mysql Date Funktionen (https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html) bzw verwenden / ermöglichen sie in Abfragen, Date - Funktionenvon Mysql sind eine der wichtigsten Funktionen unter Mysql überhaupt - ohne die wäre Mysql nahezu wertlos.
Transaction einzubinden wenn keine genutzt werden ist natürlich Unsinn - Cmsmadesimple verwendet z.Z. keine Transaktionen.
Bei einem defekten Speichervorgang wird der alte Zustand nicht wieder herbeigeführt, d.h. man hat u.U. eine defekte Tabelle. Erfolglose Transaktionen führen jedoch den alten Zustand herbei und geben eine Meldung ab auf die man reagieren sollte , ja muss.
Die Version 2 von Cmsmadesimple soll eine Datensatzsperrung vornehmen (über eine Zweittabelle), so das eine weitere Person nicht darauf zugreifen kann.
Das führt dann zu Problemen wenn ein Programmlauf beendet wird ohne das die Sperrung aufgehoben wurde.
Also tatsächlich ist es müssig das alles mal zu vergleichen denn hinsichtlich Adodb ist es so, das Cmsmadesimple nur Mysql unterstützt und aus dem Grunde ein Adodb System völlig überflüssig ist da man alles was Mysql betrifft direkt unter PHP zur Verfügung gestellt bekommt.
Keine Kommentare:
Kommentar veröffentlichen