AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Indizierung von Dateien

Ein Thema von -187- · begonnen am 27. Okt 2010 · letzter Beitrag vom 2. Nov 2010
Antwort Antwort
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#1

AW: Indizierung von Dateien

  Alt 27. Okt 2010, 21:39
XMLSource.LoadFromFile(FilePath) und XMLSource.Clear...
Beides gleichzeitig ist natürlich unnötig.

Aber denke alleine die Tatsache, dass der zweite Zugriff nur noch <= 1 Sekunde dauert, lässt kaum Hoffnung, dass durch Code-Optimierung viel zu machen ist. Sein Problem sind ja die 10+ Minuten beim ersten Zugriff.

Ich dachte eigentlich Anfangs das eine DB Anwendung überdimensioniert wäre. Naja das Programm ist fertig und ich bin nicht so begeistert von der Idee umzurüsten
40.000 Dateien = Datensätze wäre zumindest ein Wert, wo man darüber nachdenken könnte. Ist natürlich nicht so leicht zu erweitern, wie eine XML-Datei in Suchordner zu kopieren.

Wenn alles XML ist, evtl. eine einzelne Datei mit je einer Zeile pro XML-Datei (XML braucht ja kein CRLF, Zeile: Dateiname?XML-Code). Aber wenn das gelesen wird, kommt sicher gleich der Aufschrei, dass genau so eine Idee förmlich nach einer DB bettelt.

Geändert von Satty67 (27. Okt 2010 um 21:47 Uhr)
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#2

AW: Indizierung von Dateien

  Alt 27. Okt 2010, 21:41
Gibt es denn ne Möglichkeit den aktuellen Windows Cache zu speichern und bei jedem Neustart wiederherzustellen
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Indizierung von Dateien

  Alt 27. Okt 2010, 22:02
Gibt es denn ne Möglichkeit den aktuellen Windows Cache zu speichern und bei jedem Neustart wiederherzustellen
Per Systemeinstellung... glaube ich nicht Die Größe lässt sich einstellen, ist aber dann nur ein größerer leerer Cache beim Start. Alternativ Suspend-to-disk, statt ausschalten.
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#4

AW: Indizierung von Dateien

  Alt 27. Okt 2010, 22:06
Ach ich nehm die 10min erstmal so hin... Mir bleibt ja auch nichts anderes überig wenn ich nicht umbauen will
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Indizierung von Dateien

  Alt 27. Okt 2010, 23:43
Damit wirst du leben müssen. 40.000 Dateien sind schon ziemlich viel und wenn sie alle nicht sehr groß sind, wird die Festplatte erst mal ordentlich beschäftigt sein, sie alle zusammen zu suchen und zu lesen. Da hilft nur eine gut defragmentierte Festplatte, damit der Lesekopf nicht ständig hin und her springen muss. Aber zu viel würde ich mir davon nicht versprechen. Der Festplattenzugriff ist nun mal der Flaschenhals.

Wenn du die Möglichkeit hast, kannst du die Dateien ja mal auf einen Rechner mit einer SSD Platte (Also diese Festplatten ohne Scheiben, aber mit Flashspeicher.) kopieren und dann noch mal dein Programm drüberlaufen lassen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Indizierung von Dateien

  Alt 28. Okt 2010, 08:08
Oder imho noch schneller: Ne RAMDisk
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#7

AW: Indizierung von Dateien

  Alt 28. Okt 2010, 08:11
@chaosben

läuft das Teil inzwischen zuverlässig??
ich hatte vor ca 3 Jahren mal eine Version gekauft die mein System rech instabil gemacht hat.
Eigentlich eine Sache die ins OS gehört wie früher...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#8

AW: Indizierung von Dateien

  Alt 28. Okt 2010, 10:46
Oder imho noch schneller: Ne RAMDisk
Wobei die Daten von der Festplatte ja auch erstmal in die RAMDisk geladen werden müssen...
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.572 Beiträge
 
Delphi 12 Athens
 
#9

AW: Indizierung von Dateien

  Alt 2. Nov 2010, 07:27
Gibt es denn ne Möglichkeit den aktuellen Windows Cache zu speichern und bei jedem Neustart wiederherzustellen
Das Nein wurde ja schon gesagt.

Alternativ Suspend-to-disk, statt ausschalten.
Nee, da macht Windows die Cache auch leer, bzw. es speichert diese Cache nicht mit ... wäre auch "sinnlos" doppelte Daten zu speichern.
(wobei ich bei Win7 das gefühlt hab, bzw. den Verdacht, daß dort zumindestens die Cache der Ordnerstruckturen, vom Dateisystem, mit gespeichert werden )

Tja, von Dateien zu lesen ist nunmal viel langsamer, als von RAM/Cache.

PS: Mit Threads und damit verbundenen mehreren parallelen Zugriffen auf eine stinknormale Festplatte, bremst man Diese eher noch mehr aus.
Die Datenverarbeitung scheint ja soweit schnell genung zu sein, so daß man durch paralelles Lesen und Verrbeiten (Dateien dennoch sequentiell gelesen) auch nicht viel gewinnt, da immernoch das Lesen als größere Bremse dastünde.

PSS: Die RAM-Disk ... nja, irgendwie müssen die Dateien auch da erstmal drauf und wenn man diese einzeln reinkopiert, dann gewinnt man auch nix, abgesehn vom doppelten/dreifachen RAM-Verbrauch, nach dem Laden ins Programm.

> RAM-Disk + Overhead für Diskverwaltung und freien Disk-Speicher
> WindowsFileCache
> und die StringListen
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 2. Nov 2010 um 07:30 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:21 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-2025 by Thomas Breitkreuz