AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Viele Dateien performant einlesen
Thema durchsuchen
Ansicht
Themen-Optionen

Viele Dateien performant einlesen

Ein Thema von Der schöne Günther · begonnen am 28. Apr 2014 · letzter Beitrag vom 30. Apr 2014
 
Der schöne Günther

Registriert seit: 6. Mär 2013
6.190 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Viele Dateien performant einlesen

  Alt 28. Apr 2014, 12:12
Ich habe eine Vielzahl (ein paar Tausend) CSV-Dateien. Die möchte ich allesamt auswerten.

Der naive Ansatz
  1. Datei einlesen mit TStrings::LoadFromFile(..)
  2. Datei zerstückeln mitmyStrings.Split(..)
  3. Eventuell weitere Verarbeitung

funktioniert auch bestens. Es dauert aber zu lange. Bei ca. 5000 Dateien zu 24 KB braucht das Delphi-Programm auf meinem System (mit SSD) ca. 45 Sekunden.

Der Flaschenhals ist eindeutig (und überraschenderweise) TStringList::LoadFromFile . Lade ich genau die gleiche Datei ein zweites mal ein, ist das in "Null Millisekunden" getan.

Es wird also technisch:
  • Windows
  • NTFS-Dateisystem. Clustergröße wahrscheinlich fest 512 Bytes.
  • Eine Menge von Dateien im gleichen Verzeichnis möglichst schnell in den Speicher befördern

Was muss ich tun? Gibt es etwas, um alle Dateien einmal am Stück zu holen? Windows' Memory Mapped Files habe ich bislang immer nur für das Gegenteil- Viele, andauernde Operationen auf großen Dateien gehört...
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 Uhr.
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