Performance HyperFile vs XBase++

Alles was nicht in ein Thema zuordnungsbar ist
Antworten
Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Performance HyperFile vs XBase++

Beitrag 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.

Benutzeravatar
BRANDELH
Site Admin
Beiträge: 199
Registriert: 30. Juni 2010, 14:31
Wohnort: Germersheim
Kontaktdaten:

Re: Performance HyperFile vs XBase++

Beitrag 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 ;-)

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Performance HyperFile vs XBase++

Beitrag von Herbert »

Ja klar, recht hast du. Habs angepasst.

Benutzeravatar
klammerauf
Member
Beiträge: 116
Registriert: 28. November 2010, 15:11
Wohnort: bei Karlsruhe
Kontaktdaten:

Re: Performance HyperFile vs XBase++

Beitrag 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
--
WinDev 23, WM Apps für Android und iOS, Anwendungen für Windows CE Mobile Barcode Scanner, Python 3 mit Oracle

Benutzeravatar
BRANDELH
Site Admin
Beiträge: 199
Registriert: 30. Juni 2010, 14:31
Wohnort: Germersheim
Kontaktdaten:

Re: Performance HyperFile vs XBase++

Beitrag 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 ...

Benutzeravatar
klammerauf
Member
Beiträge: 116
Registriert: 28. November 2010, 15:11
Wohnort: bei Karlsruhe
Kontaktdaten:

Re: Performance HyperFile vs XBase++

Beitrag 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
--
WinDev 23, WM Apps für Android und iOS, Anwendungen für Windows CE Mobile Barcode Scanner, Python 3 mit Oracle

Benutzeravatar
BRANDELH
Site Admin
Beiträge: 199
Registriert: 30. Juni 2010, 14:31
Wohnort: Germersheim
Kontaktdaten:

Re: Performance HyperFile vs XBase++

Beitrag 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.

Benutzeravatar
klammerauf
Member
Beiträge: 116
Registriert: 28. November 2010, 15:11
Wohnort: bei Karlsruhe
Kontaktdaten:

Re: Performance HyperFile vs XBase++

Beitrag von klammerauf »

Sorry, sollte nicht so böse klingen, wie es aussieht.

Benutzeravatar
BRANDELH
Site Admin
Beiträge: 199
Registriert: 30. Juni 2010, 14:31
Wohnort: Germersheim
Kontaktdaten:

Re: Performance HyperFile vs XBase++

Beitrag 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:

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Performance HyperFile vs XBase++

Beitrag 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.

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Performance HyperFile vs XBase++

Beitrag 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

Antworten