| |
|
|
Stefan Schnell | Hallo Community, folgende Listings habe ich für die Performance-Messung von Cheetah2 verwendet: KompilierenMarkierenSeparieren-Begin-----------------------------------------------------------------
$U Cheetah2.Unit.pcu
-Occupy resources----------------------------------------------------
xdbUseDLL
-Declare variables---------------------------------------------------
Declare FileName$, hdb&, Loop$, Adress&, Data$
FileName$ = "Test.dbf"
-Create string with data---------------------------------------------
Randomize
WhileLoop 1, 4096, 1
Data$ = Data$ + @Chr$(@Rnd(96) + 31)
EndWhile
-Create database-----------------------------------------------------
xdbCreate(@Addr(FileName$), "ID,N,9,0;MEMO,M,10,0")
-Open database-------------------------------------------------------
hdb& = xdbOpen(@Addr(FileName$), "")
-Add 20000 records with data-----------------------------------------
WhileLoop 1, 20000, 1
xdbClearBuffer(hdb&)
Loop$ = @Str$(&Loop)
xdbAssignField(hdb&, "ID", 0, @Addr(Loop$))
xdbAssignField(hdb&, "MEMO", 0, @Addr(Data$))
xdbAppendRecord(hdb&)
EndWhile
---------------------------------------------------------------------
Print
Print "Press any key to exit..."
WaitKey
-Close database------------------------------------------------------
xdbClose(hdb&)
-Free resources------------------------------------------------------
xdbFreeDLL
-End-------------------------------------------------------------------
End
Damit wird eine Datenbank, bestehend aus einer ID und einem Memo-Feld mit 20.000 Datensätzen erzeugt. Jedes Memo-Feld wird mit einem String, der 4096 Bytes groß ist, gefüllt. Die Datenbank wird 400.098 Bytes groß und die zugehörigen Memo-Felder 92.160.002 Bytes (also 87,8 Megabyte).
Zur Performance-Messung habe ich folgendes Programm verwendet: KompilierenMarkierenSeparieren Hier springt das Programm 200 mal zu einem beliebigen Datensatz und liest diesen aus. Für das Springen und Auslesen benötig Cheetah, mit XProfan im Interpretermodus, ca. 0,025 Sekunden. Scheint doch ganz akzeptabel zu sein. Gruß Stefan |
|
|
| |
|
|
|
Normann Strübli | Hi Stefan,
wollte das ganze bei mir auch mal testen aber die Include Dbgview.inc habe ich irgendwie nicht gefunden - vergessen .
Wie ist denn Deine Rechnerkonfiguration? Auf der Homepage von Planetsquires lässt sich Dein Wrapper übrigens nicht mehr runterladen - Paul ma bescheidgeben?
Gruß Normann |
|
|
| |
|
|
|
Ragnar Rehbein | ich möchte keinen glaubenskrieg beginnen... aber:
mit dem MS SQL-Server sehen die zeiten ähnlich aus.
50 ms lokal 200 ms übers netzwerk 2 ms übers netz wenn für die abfrage des autoincrement ein index gesetzt wird !!!!
als MSDE kostenlos, sehr gut dokumentiert, ohne DLL in profan nutzbar, für fast alles was ich so weiß über datenbanken nahezu fehlerfrei und super stabil.
zur info ein testprogramm für die MSDE: KompilierenMarkierenSeparierenprint sqlinit(("Driver={SQL Server};Server=ragnar3;UID=sa;PWD=;Database=ordicomdb;"))
declare data$
Randomize
data$ = mkstr$("ABCD",1000)
WhileLoop 1, 4096, 1
Data$ = Data$ + @Chr$(@Rnd(96) + 31)
EndWhile
data$ = translate$(data$,"","")
sqlexec "drop table test",0
sqlexec "create table test (autoinc int identity, text varchar(5000))",0
print data$
cls
whileloop 1,20000
locate 0,0
print &loop
sqlexec "insert into test (text) values ("+Data$+") ",1
clearlist
endwhile
decimals 0
declare time&
time& = &gettickcount
whileloop 1,100
clearlist
sqlexec "select text from test where autoinc = "+str$(rnd(19999)+1),1
data$ = listboxitem$(2)
endwhile
print "time: ",(&gettickcount-time&)/100
waitinput
print data$
sleep 1000
r.r. |
|
|
| |
|
|
|
Stefan Schnell | Hallo Normann,
>aber die Include Dbgview.inc habe ich irgendwie nicht gefunden
Vor langer Zeit habe ich mal im Profan-Forum DebugView (von sysinternal) vorgestellt und dazu eine entsprechende Include-Datei, um das Debuggen mit PrfDebug und eine entsprechende Ausgabe in DebugView zu vereinfachen. Hier die DbgView.inc für Dich: KompilierenMarkierenSeparieren >Wie ist denn Deine Rechnerkonfiguration?
Getest habe ich das Programm jetzt auf mehreren Rechnern und Betriebssystemen:
WinXP Prof, HP, 1,6 GHz, 256 MByte RAM (das waren die vorhandenen Ergebnisse) WinXP Home, Brandy, 2 GHz, 256 MByte RAM (war noch schneller, 0,00xy Sekunden) Win 95 OSR 2, NoName, 266 MHz, 256 MByte RAM (war deutlich langsamer)
Alle Ergebnisse waren jedoch, bezogen auf die Rechnerkonfiguration, akzeptabel. :+)--
>Auf der Homepage von Planetsquires lässt sich Dein Wrapper übrigens nicht mehr runterladen
Habe Paul heute morgen einen leicht modifizierten Wrapper gesendet, füge ihn hier als Attachment bei.
Hallo Ragnar,
>ich möchte keinen glaubenskrieg beginnen... aber:
Ich finde dass es eine Frage des Einsatzes ist. Du hast Recht, was die Microsoft Database Engine angeht, stabil, kostenlos, schnell und erprobt. Einen ganz wichtigen Grund halte ich aber entgegen: Willst Du einem Kunden wirklich zumuten den MSDE zu installieren wenn nur eine kleine Datenbankinstallation ansteht? Und das sehe ich als klaren Vorteil von Cheetah, kompakt und erfordert vom Anwender keine weiteren Aktivitäten. Es kommt, meine Sicht der Dinge, eben darauf an, für welchen Zweck bzw. welche Zielgruppe das System bestimmt sein soll und hier hat Cheetah ebenso wie MSDE sein Segment.
Gruß Stefan |
|
|
| |
|
|
|
Stefan Schnell | Hallo Community, Ingo machte mich vor kurzem in einer eMail auf diesen Unterschied aufmerksam, hier ein kleiner Vergleich von Cheetah zu XProfan, der mich selber etwas überrascht hat:
Anlegen von 20000 Datensätzen à 3 Felder Cheetah mit XProfan im Interpreter-Modus 283 Sekunden XProfan im Interpreter-Modus 63 Sekunden Cheetah mit XProfan mit kompilierter Datei 41 Sekunden XProfan mit kompilierter Datei 12 Sekunden Cheetah mit XProfan als EXE 39 Sekunden XProfan als EXE 11 Sekunden.
Also, klarer Geschwindigkeitssieger ist XProfan.
Im Einsatz mit XProfan ist als Ansatz genau zu betrachten ob die von XProfan angebotenen Funktionen ausreichen oder nicht. Sollten, gerade in Bezug auf Memo-Felder oder andere Feldtypen, weitere Funktionen gewünscht sein, kann Cheetah eine gewinnbringende Ergänzung sein.
Gruß Stefan |
|
|
| |
|
|
|
Normann Strübli | Hallo Stefan - hallo Community,
da Cheetah meiner Meinung nach definitiv immer noch die beste Datenbank ist (der Performanceunterschied läßt sich meiner Meinung nach nur dadurch erklären, das Xprofan für die Dll-Aufrufe zu lange benötigt ) habe ich eine gute Nachricht für ALLE die Cheetah noch nicht verwendet haben - weil zu teuer :
Cheetah ist jetzt FREEWARE ! ! !
Also runterladen (Stefans Wrapper für Xprofan nicht vergessen) und begeistert sein.
Viel Spaß damit. |
|
|
| |
|
|
|
CB | Um Euch die Suche abzukürzen: [...]
Christian |
|
|
| |
|
|
|
Normann Strübli | Mist! - ja genau, den Link wollt ich doch auch posten! Danke Chistian. |
|
|
| |
|
|