Seite 1 von 1

Performance HyperFile vs XBase++

Verfasst: 17. Mai 2011, 15:05
von Herbert
So, ich habe nun genügend Daten konvertiert und dieselberechenintensive Funktion umgeschrieben, so dass 1:1 verglichen werden kann.
Die Zahlen (in sec) basieren auf einem Durchschnitt von je 5 Messungen. Der Streubereich war sehr klein (max. 0.10 sec).
Die Berechnungen sind nicht wissensschaftlich zusammengestellt. Es wird in 3 Tabellen geschrieben, aus deren 6 gelesen (aus 1 Tabelle sehr tiefgehend) und 400 mal durchlaufen.
Hyperfile SQL (.FIC-Dteien) vs. XBase++-Dateien (.DBF-Dateien) ohne ADS.

Code: Alles auswählen

Was                              Hyperfile            XBase             Faktor
Alleine auf Client                 1.66                 2.14               0.78
Alleine auf Client mit 
Daten auf Server                   3.18                 4.16               0.76      
2. Platz mit denselben 
Daten auf Server                   8.21                39.84               0.20      

Faktor Client zu Server            1.91                 1.94
Faktor Server/Server zu 2.         2.58                 9.57               0.26       
Windev mi Hyperfile benötigt nur 3/4 der Zeit.
Xbase im Netz bei gemeinsamer Nutzung ist zusätzlich fast 4 mal langsamer. Das war und ist ja immer noch mein Problem. Trotz gesetzter Registry-Keys.

Re: Performance HyperFile vs XBase++

Verfasst: 18. Mai 2011, 22:23
von BRANDELH
Hallo Herbert,

ich bin mir noch nicht sicher ob ich die Zahlen richtig verstanden habe, vermutlich liegt das daran, dass die proportional verschoben sind ;-)
Solche Aufstellungen setze ich immer in CODE Tags, ist zwar kein Code, aber sauber untereinander formartierbar ;-)

Re: Performance HyperFile vs XBase++

Verfasst: 19. Mai 2011, 08:56
von Herbert
Ja klar, recht hast du. Habs angepasst.

Re: Performance HyperFile vs XBase++

Verfasst: 20. Mai 2011, 13:41
von klammerauf
Gabs bei Xbase++ nicht mal Bemühungen ein Standard-Prog für Benchmarks zu erstellen? Sowas wäre wirklich nützlich, gerade auch im Vergleich Xbase++ vs. HyperFile, jeweils Standard vs. Client-Server, auch vs. ADS/MySQL/MS-SQL Server/Oracle/usw.

Wenn es das noch nicht gab, wie könnte so ein Prog aussehen? Was sollte dabei sein? Ich spreche hier jetzt hauptsächlich von Datenbankoperationen, also z.B.
  • XTausend Sätze anfügen
  • Alle Sätze indizieren
  • Filter/Select auf bestimmten Wert
  • gefilterte Sätze in eine neue Table exportieren
Wer hat Ideen dazu?

Sebastian

Re: Performance HyperFile vs XBase++

Verfasst: 20. Mai 2011, 14:07
von BRANDELH
Hi,

ich habe vor Jahren mit SQLExpress und Xbase++ getestet wie 500.000 Datensätze eingelesen werden im Vergleich zu einer lokalen DBF.
Dieses ist aber sichlich eher untergeordnet von Bedeutung, weil es kaum häufig vorkommt.
Die meisten werden sich dafür interessieren, wie sich eine 5 bis 10 User (PCs) Anwendung mit verteilten Zugriffen auf eine im Netz gesharte DBF gegen HyperSQL File schlägt. Dann im Vergleich zu Client-Server auf HyperFileSQL, MySQL und PostGreSQL ...

In diesem Zusammenhang müsste man dann auch prüfen, ob Datensätze "verschwinden", doppelte "eindeutige" Schlüssel vorkommen und was man tun muss um Probleme zu beherrschen ...

Re: Performance HyperFile vs XBase++

Verfasst: 24. Mai 2011, 09:01
von klammerauf
Hubert, ich wollte die Performance testen, nicht die Zuverlässigkeit.

Ich muss dir da auch widersprechen, was das Thema 'Die meisten werden sich dafür interessieren...' angeht. Einen Zugriff auf gesharte DBFs im Netzwerk sind heutzutage doch so normal, dass 'die meisten' gar nicht darüber nachdenken. Außerdem sprichst du auch von MySQL und PostGreSQL, da macht man sich als Xbasler mit derartigen Problemen wie doppelt vergebene eindeutigen Schlüsseln und verschwundenen Datensätzen doch nur lächerlich. Davon abgesehen, die letztgenannten Systeme würden ja eh keinen 'gesharten' Zugriff in der Art und Weise von Xbase erlauben.

Meiner Meinung nach interessieren sich die meisten dafür, warum sie oftmals vor ihrem Rechner sitzen und auf ein Programm warten müssen und warum das nicht schneller gehen kann. Denn es gibt tatsächlich manche Programmroutinen mit Datenbankzugriffen, die etliche Minuten, wenn nicht gar Stunden dauern. Und auch hier muss ich dir widersprechen, meiner Erfahrung nach gibt es etliche Programme/Firmen/Einzelfälle, in denen das häufig vorkommt.

Zusätzlich muss ich noch mein entsetztes Bedauern äussern, dass es tatsächlich noch Firmen geben soll, bei denen '5 bis 10 User (PCs)' ohne ein Client/Server Datenbankmodell arbeiten.

Sebastian

Re: Performance HyperFile vs XBase++

Verfasst: 24. Mai 2011, 15:08
von BRANDELH
Hallo Sebastian,

bist du heute mit dem falschen Fuß aufgestanden ? :huh:

Wenn ich von 'Die meisten...' schreibe, meine ich Entwickler, keine Endanwender die '... interessieren sich die meisten dafür, warum sie oftmals vor ihrem Rechner sitzen ...' vor schlechten Programmen sitzen. Ansonsten ist es schon interessant die Zugriffstechniken gegenseitig zu vergleichen, gesharte DBF (eine Nische der Xbase++ und Foxpro Entwickler) gegen PostgreSQL oder MySQL mit Xbase++ 2.0 (sobald verfügbar) oder SQLExpress (mit dem habe ich vor Jahren experimentiert) und weil wir hier ja im WinDev Forum sind, auch gegen gesharte HyperFileSQL und Client/Server ...

PS: Einige meiner Anwendungen laufen mit 10 bis 15 Anwendern auf Terminalserver und gesharten DBF, das geht schon wenn das Netzwerk stimmt und einen SQL Server hätte ich nie durchsetzen können.

Re: Performance HyperFile vs XBase++

Verfasst: 24. Mai 2011, 15:10
von klammerauf
Sorry, sollte nicht so böse klingen, wie es aussieht.

Re: Performance HyperFile vs XBase++

Verfasst: 24. Mai 2011, 15:20
von BRANDELH
Ich hatte meine Antwort noch etwas ausgebaut ...

Im Xbase Forum habe ich vor Jahren geholfen ein Programm im fast Stundenbereich auf Minuten zu drücken,
der Entwickler hatte nur erlaubte Befehle genutzt, aber die Schleife nicht optimiert. :sleepy:

Re: Performance HyperFile vs XBase++

Verfasst: 24. Mai 2011, 18:02
von Herbert
Dem Optimieren von Code wird generell zu wenig Beachtung geschenkt. Neben den unglaublichen Dingen wie Listboxen mit über 100'000 Einträgen zu füllen usw.
Genau deswegen habe ich eine Routine gewählt, die liest und schreibt und loopt. Eben das Durchschnittliche Bearbeiten, um einigermassen aussagekräftige Werte als Vergleichsbasis zu erhalten. XBase im Netz ist (das wusste man ohnehin schon) einfach viel zu langsam.

Client-Server versus gesharte Tabellen ist hingegen ein ganz anderer Ansatz.

Re: Performance HyperFile vs XBase++

Verfasst: 8. Juni 2011, 12:33
von Herbert
Nach einigen kleineren Anpassungen bin ich beim Faktor 2 (resp. 0.5) angelangt. Eine Funktion in Windev spulte noch sequentiell durch eine Tabelle und läuft nun auch über einen Index wie in xbase bereits der Fall war. Also: schnell und stabil trotz mehr Anzeige-Schnick-Schnack.

Code: Alles auswählen

Alleine auf Client alt          1.66                 2.14               0.78
Alleine auf Client neu          1.14                 2.14               0.53