Pro und Kontra XPF versus INI

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Pro und Kontra XPF versus INI

Beitrag von mini990 »

Hallo,
ich setze bei mir XPF-Dateien und INI-Dateien ein.
Nun fällt mir beim testen folgendes auf:
Einlesen von 184 Werten aus einer lokal abgelegten Ini-Datei: 2,6 Sekunden
Einlesen von 184 Werten aus einer im Netz abgelegten Ini-Datei: 3,0 Sekunden
Einlesen von 184 Werten aus einer lokal abgelegten XPF-Datei: 0,1 Sekunden
Einlesen von 184 Werten aus einer im Netz abgelegten Ini-Datei: 0,1 Sekunden

Was spricht für / gegen den Einsatz von XPF bzw. INI?
INI pro: leicht zu bearbeiten
INI kontra: langsam

XPF pro: sehr schnell
XPF kontra: nicht ohne Hilfsmittel lesbar editierbar

Eure Meinung?

Gruß Stefan
PS: Ich hatte in den letzen 32 Jahren weder bei mir noch einem Anwender jemals eine korrupte MEM/XPF Datei
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Pro und Kontra XPF versus INI

Beitrag von Jan »

Stefan,

mehr als 2 Sekunden zum einlesen einer ini mit weniger als 200 Einträgen? Ich bin baff ... Werden die zur Laufzeit erst geschnitzt? :-D

Außerdem ist da ein Tippfehler in Deiner Liste. Der unterste Eintrag soll vermutlich nicht "ini" sonder "xpf" sein.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Pro und Kontra XPF versus INI

Beitrag von Tom »

Wie liest Du aus der INI, Stefan? Ich nehme an, Du holst Dir die Werte einzeln, oder? Bei XPF erzeugst Du immer alle Speichervariablen in ihrer Gesamtheit (neu), wobei es nach meiner Erfahrung nur wenig Unterschiede macht, ob das nun 100 oder 1000 Variablen sind. Vermutlich holst Du die Werte aus der INI einzeln nacheinander ab - und das jedes Mal unter Neuvergabe von Handles usw.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Pro und Kontra XPF versus INI

Beitrag von brandelh »

Nutzt du die API Funktionen zum Lesen der INI oder eine selbstgebastelte Funktion ?

200 Aufrufe mit fopen() suchen fclose() etc. und zuordnen zu Variablen muss länger dauern als die interne Speicherung der Vars in einer Datei (auf einen Rutsch alles auf die Platte).

DIe INI API Funktionen sind nach meiner Erfahrung schnell und auch auf konkurierenden Betrieb ausgelegt, aber ich habe keine 200 Werte die ich so einlese.
Die API Funktionen kann man auch nutzen um komplette Bäume auf einmal zu lesen (wie man das dann umsetzt bin ich überfragt), soweit ich mich erinnere.
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Pro und Kontra XPF versus INI

Beitrag von Tom »

Der Geschwindigkeitsunterschied ergibt sich aus der Art des Zugriffs. Bei INIs arbeitet man auf einzelnen Daten/Einträgen, XPFs laden und speichern immer alles auf einmal. Das macht dann auch den inhaltlichen Unterschied aus: Im Mehrbenutzerbetrieb kann das heikel werden, wenn ein Benutzer immer eine gesamte Variablengruppe ändert, obwohl es möglicherweise nur um einen einzelnen Wert geht. Bei INIs ist das kein Problem, da kann man auch einzelne Werte gut lesen und schreiben, ohne bezogen auf den Rest anderen Benutzern die Füße wegzureißen. Allerdings erfahren sie von den neuen INI-Werten auch erst, wenn sie direkt darauf zugreifen, also genau dieser Wert erneut eingelesen wird. Anders gesagt: Man muss vor jedem Schreibzugriff laden und den aktuellen Wert anzeigen, um sicherzustellen, dass nicht falsch überschrieben wird. Dieses Problem ist bei XPF aber u.U. noch haariger, weil es immer um alles geht, es sei denn, man verteilt viele Daten auf viele Dateien. Das geht natürlich auch.
XPFs sind in der Anwendung aus dem Programm heraus aber bequemer, weil man eigentlich fast nichts tun muss - nur die Variablen richtig benennen. Und dass man von außen kaum rankommt, halte ich für einen Vorteil. Allerdings haben wir uns vor ewigen Zeiten auch einen XPF-Editor für unseren Support geschrieben.
Herzlich,
Tom
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Pro und Kontra XPF versus INI

Beitrag von mini990 »

Ich benutze die Funktion Tinifile() von Phil Ide
Die Ini-Datei hat ingesamt etwas 375 Einträge.

Gruß Stefan
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Pro und Kontra XPF versus INI

Beitrag von brandelh »

In der Wissensbasis habe ich die Funktionen veröffentlicht, die die Windows API direkt nutzen, allerdings fehlen die PRG und XPJ Dateien, da diese gesperrt wurden ??? ADMINS ???

:arrow: viewtopic.php?f=16&t=3705&p=113011

Gruß
Hubert
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Pro und Kontra XPF versus INI

Beitrag von Martin Altmann »

brandelh hat geschrieben: Mi, 11. Jul 2018 13:45... allerdings fehlen die PRG und XPJ Dateien, da diese gesperrt wurden ??? ADMINS ???
Jetzt nicht mehr!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Pro und Kontra XPF versus INI

Beitrag von brandelh »

jetzt habe ich eine neue ZIP Datei angehängt und sehe aber nicht was drinn war ist sehr seltsam ... mal den anderern Browser nutzen, auf jeden Fall:

Schreiben von 500 Variablen per einzelnem SETINI() Aufruf dauert auf meinem 6 Jahre alten HP i5 Rechner (mit SSD) 1,5 Sekunden.
Das Lesen dieser 500 Variablen und Zuweisung zu xTemp nur 0,22 Sekunden.
Gruß
Hubert
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Pro und Kontra XPF versus INI

Beitrag von Herbert »

Die Frage ist doch eher, was ist denn in diesen Variablen abgelegt?
Der schnellste Weg ist, diesen Weg möglichst nicht anzuwenden. Wichtige Grundwerte gehören in eine Tabelle und sind so blitzschnell im Zugriff. Wir verwendeten früher viele Benutzereinstellungen in .ini. Heute lagern wir etwa die Hälfte davon in einer User-Tabelle (die es ohnehin schon gab) oder in anderen Tabellen. Viel schneller, effektiver und sicherer. Eine Datei mit Eisntellungen kann gelöscht werden und alle Werte sind weg.
Grüsse Herbert
Immer in Bewegung...
Antworten