Announcement

Collapse
No announcement yet.

TMemIniFile - Performancekiller!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TMemIniFile - Performancekiller!

    Hallo,

    die Verwendung von TMemIniFile zwingt die Anwendung bei einer grossen Anzahl an Einträgen so in die Knie, dass von einer guten Ausführungsgeschwindigkeit leider nicht mehr die Rede sein kann. Generiere ich z.B. 50000 Einträge in einer Sektion (bitte nicht über Sinn oder Unsinn dieser Aktion diskutieren :-) ), so kann man beim Indexzähler dieser Schleife locker mitzählen. Eine Erklärung ist sicher die interne Verwendung von TStrings mit ihren linearen Suchen (siehe <a href = "http://homepages.borland.com/efg2lab/Library/Delphi/IO/Files.htm#INI">hier</a>)

    Gibt es wirklich schnelle(!) Alternativen (im Sourcecode verfügbar), grosse INI-Dateien zu lesen und zu schreiben?

    Viele Grüße<br>
    Stephan Schneider

  • #2
    Ich kenne jetzt die interne Implementierung nicht, aber es könnte möglich sein die interne TStringList mit .Sorted := True zu initialisieren. In diesem Moment wird keine lineare Suche benutzt, stattdessen wird eine binäre Suche benutzt. Bei 50.000 Einträgen dürfte nach max. 16 Vergleichen der Eintrag gefunden sein, statt eben max. 49.999.

    Gruß Hage

    Comment

    Working...
    X