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
Seite 1 von 5  1 23     Letzte »    
-187-

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

Indizierung von Dateien

  Alt 27. Okt 2010, 15:57
Moin,

ich habe mal eine Frage bezüglich Windows 7 und der Indizierung von Dateien.

Mein Programm überprüft ob ein String in einer XML Datei vorkommt. Mit einer Schleife überprüfe ich so 40.000 Dateien. Wenn ich diese Dateien frisch erstelle und dann mein Programm laufen lassen, dauert die Überprüfung 20 Minuten. Wenn das Programm allerdings einmal durch ist und ich erneut eine Suche starte, dann dauert die Überprüfung nur noch 20 Sekunden.

Mein Programm ist sehr simpel und benutzt keine Index Tabelle, daher muss das an der Windows Indizierung liegen. Kann mir das jemand ganauer erklären ?

bYe
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

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

AW: Indizierung von Dateien

  Alt 27. Okt 2010, 16:00
Also wenn du nicht die Routinen der Windows-Suche benutzt, nutzt du die Windows-Indizierung auch nicht.
Warum dein Programm beim 2. Mal so schnell durch ist, kann ich dir nicht sagen. Aber das wird wohl eher an deinem Code als an Windows liegen.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

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

AW: Indizierung von Dateien

  Alt 27. Okt 2010, 16:02
Ich glaube nicht, dass das mit dem Indexdienst von Windows zusammenhängt. Ich denke eher, dass hier die Adressen der einzelnen Dateien (ggf. auch die Dateien selbst, wenn sie nicht zu groß sind) im Cache (lies: Arbeitsspeicher) vorgehalten werden.

@chaosben: Möp? Eigentlich ist das doch ne bekannte Eigenart, dass Windows Dateiteile, auf die gerade zugegriffen wurde, im RAM hält...
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von Daniela.S
Daniela.S

Registriert seit: 1. Mär 2008
Ort: Niederösterreich
226 Beiträge
 
Delphi XE4 Enterprise
 
#4

AW: Indizierung von Dateien

  Alt 27. Okt 2010, 16:03
Deine XML Datei wird bei zweiten Mal im Chache, also im RAM, liegen und somit nicht noch einmal von der Festplatte geladen werden.
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

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

AW: Indizierung von Dateien

  Alt 27. Okt 2010, 16:09
Und wenn man das mal schnell überschlägt und 5 kB pro Datei veranschlagt, dann kommt man auf 200 MB, was ja nun nicht wirklich viel ist. Insofern isses wahrscheinlich, dass der ganze Rotz einfach im Arbeitsspeicher bleibt. Irgendwann werden die Bereiche dann wieder zum Überschreiben freigegeben. Wenn du jetzt nochmal dein Programm startest, weiß Windows, dass die Dateien noch im RAM sind und du bekommst n Geschwindigkeitsrausch.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  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 27. Okt 2010, 16:23
Ja gut ... ich dachte auch erst an den Cache habe aber nicht nur 5k pro Datei veranschlagt ... egal.

Ja, der Cache könnte es theoretisch sein.

Du könntest das mit diesem Code gegenprüfen.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
-187-

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

AW: Indizierung von Dateien

  Alt 27. Okt 2010, 19:04
Hm Okay das ist ja jetzt blöd wenn das jedesmal 20 Minuten dauert.

Hat jemand ne schnellere Lösung 40.000 Dateien zu durchsuchen als diese:

Code:
for i:=0 to MyFiles.Count-1 do
begin
  if Pos('MyString',MyFiles.Strings[i])>0 then do
    do something...
end;
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Indizierung von Dateien

  Alt 27. Okt 2010, 19:12
Zitat von -187-;:
Hm Okay das ist ja jetzt blöd wenn das jedesmal 20 Minuten dauert.

Hat jemand ne schnellere Lösung 40.000 Dateien zu durchsuchen als diese:

Code:
for i:=0 to MyFiles.Count-1 do
begin
  if Pos('MyString',MyFiles.Strings[i])>0 then do
    do something...
end;
Ist das der Teil, der so lange braucht? ME fehlt der Teil, wo die Dateien geladen werden
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
-187-

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

AW: Indizierung von Dateien

  Alt 27. Okt 2010, 20:13
Oops, ja hab ich natürlich vergessen zu erwähnen. Der Code sieht in etwa so aus:

Code:
  XMLSource:=TStringList.Create;
  try
    for i:=0 to IDList.Count-1 do
    begin
      FilePath:=ExtractFilePath(ParamStr(0))+IDList.Strings[i]+'.xml';
      XMLSource.LoadFromFile(FilePath);
      //Hier verarbeite ich den Source
      XMLSource.Clear;
    end;
  finally
    IDList.Free;
    XMLSource.Free;
  end;

Geändert von -187- (27. Okt 2010 um 20:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

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

AW: Indizierung von Dateien

  Alt 27. Okt 2010, 20:48
*g*

Jetzt fehlt nur noch der Teil, in welchem du nach dem string suchst.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


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 12:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz