Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Grenzen von INI (https://www.delphipraxis.net/184825-grenzen-von-ini.html)

Popov 25. Apr 2015 12:03

AW: Grenzen von INI
 
Zitat:

Zitat von Luckie (Beitrag 1299234)
Wenn ich nach der Grenze von irgendwas fragen muss, dann mache ich was falsch. Weil in der Regel ist Windows so ausgelegt, dass man äußerst selten an irgendeine Grenze stößt.

Die Grenzen von INI sind mir mehr oder weniger bekannt. Auch bin ich in der Lage ein Testprogramm zu schreiben das mir die Grenzen zur Not aufzeigt. Bevor ich also gefragt habe, wußte ich bereits, dass ein Wert, nicht die Zeilenlänge, 2047 lang sein kann und auch die ganze INI paar MB groß sein darf.

Was ich aber nicht weiß ist, seit wann das so ist, d. h. ob ich eine Einschränkung für Windowsversion mit einbauen soll, bzw. ob sich das lohnt, usw.


@DeddyH

Danke, werde es testen. Der erste Test sieht aber nicht gut aus, da gibt es Fehlermeldungen. Ich werde aber prüfen ob ich es umprogrammieren kann

Bernhard Geyer 25. Apr 2015 12:06

AW: Grenzen von INI
 
Zitat:

Zitat von Popov (Beitrag 1299239)
Was ich aber nicht weiß ist, seit wann das so ist, d. h. ob ich eine Einschränkung für Windowsversion mit einbauen soll, bzw. ob sich das lohnt, usw.

Für in 2015 relevante Windows-Versionen (XP und neuer) gibt die Einschränkungen nicht mehr.
Es könnte sein das Win9x die noch hat, aber in 2015 ist Win9x eh irrelevant (oder soll dein Programm noch für die potentiellen 3 User sein die noch 95 installiert haben?).

Popov 25. Apr 2015 12:24

AW: Grenzen von INI
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1299240)
Es könnte sein das Win9x die noch hat, aber in 2015 ist Win9x eh irrelevant...

Stimmt, man sollte dann aber entweder ein Hinweis geben, das Programm funktioniert nicht mit dieser Windows-Version, ober sich fragen, langsame Systeme hin oder her, 0,5 Sekunden auch hin oder her, ich lasse alles bei altem und dann ist das Programm auch zu 95 kompatibel.

Letztendlich geht es weniger um das aktuelle Programm, es geht vielmehr um die Grenzen zu kennen, bzw. wann es welche gab. Aktuell gibt es keine oder sie können umgangen werden.

Bernhard Geyer 25. Apr 2015 12:31

AW: Grenzen von INI
 
Zitat:

Zitat von Popov (Beitrag 1299242)
Stimmt, man sollte dann aber entweder ein Hinweis geben, das Programm funktioniert nicht mit dieser Windows-Version,

Machen doch die meisten Programme. Wir bringen unter NT z.B. eine Meldung das das OS zu alt ist. Unter W9x dürfte es vermutlich gar nicht mal startbar sein

Zitat:

Zitat von Popov (Beitrag 1299242)
... dann ist das Programm auch zu 95 kompatibel.

Du testest es dann sicherlich auch? oder vermutest du das nur? Z.B. gabs selbst mit D6 schon einen patch-stand der nicht mehr unter W9x lief. Erst mit einem Hotfix lief wieder. Und wenn du Third-Party-Kompos einsetzt ist es fraglich ob die noch gegen Win9x Prüfen.

Zitat:

Zitat von Popov (Beitrag 1299242)
... es geht vielmehr um die Grenzen zu kennen, bzw. wann es welche gab.

Microsoft dokumentiert sowas eigentlich ganz gut. Aber bei solch alten OS-Versionen und mehr oder minder abgekündigten APIS wird man evtl. lange den passenden Artikel suchen müssen.

Luckie 25. Apr 2015 12:42

AW: Grenzen von INI
 
Zitat:

Zitat von jobo (Beitrag 1299237)
Mmh, diese Herangehensweise finde ich jetzt aber sehr eigenartig. Ist nicht mindestens im Zweifel eine genaue Grenzwertbetrachtung notwendig?
Finde ich ehrlich gesagt überraschend, das hier so zu lesen, wo gern schon mal auf Ebene von Variablen um Bits, Bytes, Integers gestritten wird.

Du hast mich nicht verstanden. das datentypen in ihrer Größe beschränkt sind, ist klar. Es geht um Fragen wie zum Beispiel: "Kann ich aus meinen Prozess 1.000 Threads gleichzeitig starten, weil ich sie brauche." Dann macht man mit ziemlicher Sicherheit was falsch.

Bjoerk 25. Apr 2015 13:26

AW: Grenzen von INI
 
Zitat:

Zitat von Popov (Beitrag 1299239)
Die Grenzen von INI sind mir mehr oder weniger bekannt. [..]

Die Grenze einer Inifile ist seit XP nicht die Größe sondern der Zeitaufwand beim Suchen des Eintrages. Was eine Inifile langsam macht ist, daß der Eintrag gesucht werden muß. Deshalb sind viele kleine Sections auch schneller als wenige große. Außerdem werden [ Section ] zu [Section] und Ident = Value zu Ident=Value korrigiert (Stringverarbeitung). Und, Default wird nicht zwischen Groß und Kleinschreibung unterscheiden, also brauchts ein AnsiLowerCase, und das ist sehr langsam. TMemInFile hat eine property CaseSensitive, das bringt ganz schön was.

Chemiker 26. Apr 2015 12:00

AW: Grenzen von INI
 
Hallo Popov,

INI-Dateien steht für Initialisierungsdatei diese sind eigentlich für Einstellungen des Programms mal von MS eingeführt worden. Wenn Du sowieso mehrere INI-Dateien hast vielleicht ist es möglich diese erst aufzurufen, wenn sie konkret gebraucht werden.
Wenn es normale Daten sind und Du keine DB verwenden willst würde ich einen TFileStream benutzen.

Bis bald
Chemiker

Popov 26. Apr 2015 13:54

AW: Grenzen von INI
 
Hallo Chemiker,

ich weiß was Ini bedeutet und ich weiß auch, dass es eigentlich für Einstellungen gedacht ist. Man kann damit aber auch sonstige Informationen speichern. Und bevor mir noch einer sagt, dass für sowas eigentlich Datenbanken gedacht sind, nun, bevor ich eine Server aufsetze oder sonstige DLLs einbauen muss usw., nur um etwas Simples zu speichern...

Aber bevor mir einer hier Resistenz gegen gute Tipps vorwirft, auch wenn ich über einiges diskutiere, so setzte ich viele Tipps dann doch um. Das mit den 0.5 Sekunden war übrigens nur geschätzt, ich hab es dann nachgemessen, es waren 1,844 Sekunden. Dann habe optimiert (nur zwei Zeilen) und es wurden 0,186 Sekunden. Dann noch mehr optimiert (dieses Mal 32 Zeilen) und es wurden 0,177 Sekunden. Und das auf einem alten langsamen System. Damit kann ich leben.

Also vielen Dank für die guten Tipps, die waren nicht umsonst. Gelegentlich inspirieren sie einen zu paar Änderungen.

Bernhard Geyer 26. Apr 2015 14:20

AW: Grenzen von INI
 
Zitat:

Zitat von Popov (Beitrag 1299307)
Dann habe optimiert (nur zwei Zeilen) und es wurden 0,186 Sekunden. Dann noch mehr optimiert (dieses Mal 32 Zeilen) und es wurden 0,177 Sekunden. Und das auf einem alten langsamen System. Damit kann ich leben.

Also vielen Dank für die guten Tipps, die waren nicht umsonst. Gelegentlich inspirieren sie einen zu paar Änderungen.

Verrätst du uns was dies zwei Zeilen waren (Sowas wie hier http://www.delphipraxis.net/1299238-post30.html)

Popov 26. Apr 2015 15:49

AW: Grenzen von INI
 
Ich hab zuerst den 32 Zeilen Code geschrieben. Da habe ich nach einer Logik geprüft welche Daten es geben kann und welche nicht. Wenn x gleich y ist, kann es die Daten geben, ist es dagegen z, kann es die Daten nicht geben. So in etwa. Also kann man sich auch den Zugriff sparen, der einem sowieso nur sagt, dass es die Daten nicht gibt. Das spart Zeit.

Damit habe ich tatsächlich den Zugriff von 1,844 auf 0,422 reduziert.

Dann hatte ich die Idee, weil irgendwer es mal eingeworfen hat, TMemIniFile statt TIniFile zu nehmen. Der Hinweis war in einem anderen Zusammenhang, aber da ich an der Stelle nur lesen mußte, reichten zwei Änderungen.

Das brachte den Rest, bzw. die 32 Zeilen Änderung wurden fast unwichtig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 Uhr.
Seite 4 von 5   « Erste     234 5      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz