Delphi-PRAXiS
Seite 4 von 6   « Erste     234 56      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   VirtualStringTree - Nodes hinzufügen (https://www.delphipraxis.net/179669-virtualstringtree-nodes-hinzufuegen.html)

d7user1 24. Mär 2014 22:52

AW: VirtualStringTree - Nodes hinzufügen
 
mist. ich probiere gleich mal die funktion hier aus der code-lib aus wenn ich die noch finde.

edit:
ok also selbst mit dieser funktion dauert es 4 bis 5 sekunden:
http://www.delphipraxis.net/332578-post.html#392510

kann es sein dass du eine SSD hast?

Popov 24. Mär 2014 23:00

AW: VirtualStringTree - Nodes hinzufügen
 
Delphi-Quellcode:
procedure GetFilesOL(SearchPath: String; ObjectList: TObjectList; SubFolder: Boolean);
var
  SearchRec: TSearchRec;
  FileInfo: TFileInfoEx2;
begin
  SearchPath := IncludeTrailingPathDelimiter(SearchPath);

  if FindFirst(SearchPath + '*.*', faAnyFile or faDirectory, SearchRec) = 0 then
  try
    repeat
      if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
        with ObjectList do
        begin
          FileInfo := TFileInfoEx2.Create;
          Add(FileInfo);

          FileInfo.Path := SearchPath;
          FileInfo.Name := SearchRec.Name;
          FileInfo.SearchRec := SearchRec;
        end;
    until FindNext(SearchRec) <> 0;
  finally
    FindClose(SearchRec);
  end;

  //----------------------------------------------------------------------------

  if SubFolder then
  begin
    if FindFirst(SearchPath + '*.*', faDirectory, SearchRec) = 0 then
    try
      repeat
        if ((SearchRec.Attr and faDirectory) = faDirectory) and
          (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
          GetFilesOL(SearchPath + SearchRec.Name, ObjectList, SubFolder);
      until FindNext(SearchRec) <> 0;
    finally
      FindClose(SearchRec);
    end;
  end;
end;

d7user1 24. Mär 2014 23:04

AW: VirtualStringTree - Nodes hinzufügen
 
jop. also mit deiner prozedur mit stringlist anstatt objektlist dauert es dennoch 4 sekunden.
entweder ist es die stringlist oder es ist weil ich keine ssd habe.

es ist zudem eine angepasste version der datensammlung mit dingen die ich benötige. das würden die 2sekunden überlänge erklären

Popov 24. Mär 2014 23:12

AW: VirtualStringTree - Nodes hinzufügen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Vielleicht hast du einfach nur einen langsamen Rechner.

Teste das mal: (siehe Anhang)

PS: die Sortierung ist noch nicht angepasst und sortiert nur nach Daten, ohne Pfade zu berücksichtigen.

d7user1 24. Mär 2014 23:13

AW: VirtualStringTree - Nodes hinzufügen
 
mh. intel core i7 mit 4* 1.6ghz
ram weiß ich grade nicht aber der ist schon schnell. 1333mhz glaube ich pro block
und eine hybridfestplatte.

dein beispiel läuft bei mir in 7-8 5-6 sekunden durch.

ich hatte mal beobachtet dass mein rechner langsmer wird wenn man ZU OFT ohne einen neustart mit delphi kompiliert.
vielleicht ist es das.

Popov 24. Mär 2014 23:18

AW: VirtualStringTree - Nodes hinzufügen
 
Alter AMD Athlon 7750 Dual-Core Prozessor, 2.70 GHz, und trotzdem schneller :P

EDIT:

Damit du siehst, dass die 500 ms stimmen: http://www.directupload.net/file/d/3...6cqkxl_gif.htm

Wenn du wirklich 5 Sekunden bei gleichem Code brauchst, dann stimmt da was nicht. Teste mal den Speed deiner Festplatte damit: http://www.heise.de/download/hd-tune.html

d7user1 24. Mär 2014 23:34

AW: VirtualStringTree - Nodes hinzufügen
 
selbst nach einem neustart keine wirkliche besserung. mein beispiel lief vorher in 6.X sekunden durch nun in 5.X.
vielleicht ist meine windows-installation hinüber?
dass ich das mit einer testversion von XE2 kompiliere ändert nichts oder?

d7user1 24. Mär 2014 23:58

AW: VirtualStringTree - Nodes hinzufügen
 
Liste der Anhänge anzeigen (Anzahl: 1)
das sieht dann so aus:
http://www.directupload.net/file/d/3...xhpdkb_png.htm
oder so:
http://www.directupload.net/file/d/3...e2ol7r_png.htm

wielange braucht mein berispiel denn bei dir? (anhang)

Popov 25. Mär 2014 00:22

AW: VirtualStringTree - Nodes hinzufügen
 
Sieht ok aus, obwohl 1GB etwas wenig sind. Wiederhole das für dich mal mit 40 GB.

Ich weiß zurzeit auch nicht wo das Problem liegt.

d7user1 25. Mär 2014 00:42

AW: VirtualStringTree - Nodes hinzufügen
 
kann es sein dass das daran liegt dass es ein laptop ist?
könntest du mein beispiel oben eventuell testen?


edit:
ich habe mal die dateiliste der dateien die rekursiv in C:\Windows sind in eine textdatei gepackt.
mein testprogramm lädt nun diese testdatei anstatt die liste selber zusammenzustellen per FindFirst usw usw.

mit dem code aus der code-lib braucht mein rechner 4 bis 5 sekunden. mein angepasster, für meine bedürfnisse, code braucht etwa 5.5 bis 6 sekunden.

und das laden der textdatei direkt in die stringlist benötigt nur 200ms ungefähr. demnach ist es eindeutig meine festplatte die entweder hinüber ist oder
meine windows-installation. das seltsame ist aber dass ein anderer datenträger bei 13000 dateien dennoch 3 sekunden benötigt. ich glaube also es ist die windows-installation.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:44 Uhr.
Seite 4 von 6   « Erste     234 56      

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