Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte » 

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TTreeView komige Speedprobleme... (https://www.delphipraxis.net/162532-ttreeview-komige-speedprobleme.html)

DelTurbo 26. Aug 2011 22:11

Delphi-Version: 7

TTreeView komige Speedprobleme...
 
Hi,
ich habe folgendes Problem. Ich habe ein kleines Programm gemacht was einen TTreeView füllt. Wenn ich das auf meinem "normalen" Arbeitsrechner laufen lasse, dauert es ~1 Minute.

Lasse ich das in einer VMWare auf dem selben rechner laufen, ist die dauer ~17 Sekunden.

Hier mal ein bissl eckdaten vom System.
CPU ist eine I5-760.
WinXP SP3
Delphi 7 mit mad und Indy10
Kayspersky 2010 Internet Security

Hat vielleicht jemand eine Idee wer oder was das füllen von einem TTreeView so verlangsamt?

Im moment bin ich an einem Laptop mit einer 1,6Mhz Pentuim M CPU. Er braucht ca. 57 Sekunden.

Vielen dank im voraus

Bernhard Geyer 26. Aug 2011 22:19

AW: TTreeView komige Speedprobleme...
 
Ich schmeiß mal folgende "Zauberzeilen" in den Ring:

Items.BeginUpdate;
Items.EndUpdate;

bzw. virtueller Modus

....

rweinzierl 27. Aug 2011 07:08

AW: TTreeView komige Speedprobleme...
 
Hallo

Wenn geschwindigkeit wichtig ist dann die Virtual Tree View Komponenten verwenden.

==> Mehr aufwand aber es lohnt sich.

mfg

Reinhold

DelTurbo 27. Aug 2011 11:34

AW: TTreeView komige Speedprobleme...
 
Hallo ihr zwei ;)

Beginupdate und EndUpdate ist drinne. Aber das war eigentlich nicht meine frage. Meine frage ist, wie kann es sein das es hier auf dem System 4x langsamer ist?

Hat dazu vielleicht jemand eine idee? Ich habe gestern abend noch auf dem Laptop Kaspersky aufgespielt. Der speed auf dem laptop hat sich nicht geändert.

Also den Virenscanner kann ich schonmal ausschliessen.

Auf diesem System hier wird auch keinerlei Software mal installiert und wieder deinstalliert. Wenn ich eine Soft testen möchte, dann mache ich das immer in einer Virtuellen. Dafür sind die ja da. Es sind auch keinerlei Spiele auf diesem System hier. Dafür ist ein 2. System auf einer 2. platte im System.

Hatte vielleicht schonmal jemand das gleiche prob?

wicht 27. Aug 2011 11:42

AW: TTreeView komige Speedprobleme...
 
Wieviele Items sind es denn? Hast du etwas Code zum zeigen, was das Hinzufügen angeht?

DelTurbo 27. Aug 2011 11:56

AW: TTreeView komige Speedprobleme...
 
Hi,
also es sind 54.279 Items. Hinzugefügt werden sie aus diesem Post. http://www.delphipraxis.net/1118455-post9.html Ich habe den link von Lannes genommen, der mir netterweise an dieser stelle geholfen hat.

Wobei ich denke das es egal ist ob ich 10.000 oder 100.000 Items hinzufüge. Und eigentlich sollte es doch auch egal sein wie. Da ich immer die gleiche .exe zum messen nehme. Oder irre ich mich???

Wenn ich mein "SpieleSystem" boote sind die in ~14 Sek. drinn. Mehr als 4x so schnell. Und das mit der gleichen .exe auf der gleichen Hardware.

FredlFesl 27. Aug 2011 13:06

AW: TTreeView komige Speedprobleme...
 
Ich mach das immer so, das ich die zu einem Knoten gehörenden Kinder erst dann lade, wenn man zum 1.Mal auf den [+]-Button klickt.
Sofern die 57.932 Einträge nicht alle in Level-0 enthalten sind, wird der Baum dann sofort, d.h. ohne Zeitverzögerung dargestellt.

Oder zeigst Du etwa alle 54.279 gleichzeitig an?

DelTurbo 27. Aug 2011 13:21

AW: TTreeView komige Speedprobleme...
 
Nein, es sind alles mind. level 1 einträge, bis auf einen. Der TTreeView wird auf einmal gefüllt. Ich lese die daten in einen TStringList ein (die dauer ist abgezogen) und fülle dann den TTreeView so wie in dem link beschrieben.

Ich habe nun auchmal versucht mit dem ProcessExplorer zu sehen warum das so ist. Aber es wird mir nur die .exe angezeigt die last macht.

Im moment bin ich kurz davor mein System neu zu machen. Weil es kann ja nicht an der "Füllart" liegen. Wenn das der fall wäre, dann wäre es überall langsam bzw. gleich schnell.

Das ist halt die sache die ich nicht verstehe. Warum ist es nur auf diesem System so langsam?

EDIT: Ich habe es grade auf einem anderen Laptop getestet. Da ist eine Uralte installation drauf. Das teil hat eine 1,5Ghz CPU und ist schneller als hier das System mit einem i5-760. Irgendwie verwirrt mich das alles.

Bjoerk 27. Aug 2011 13:36

AW: TTreeView komige Speedprobleme...
 
Probier' mal so, vielleicht bringt's ja was.

Delphi-Quellcode:

procedure GetNodeDirs(const ADirectory: String; const Tree: TTreeView; const Start: TTreeNode);

  function SlashSep(const Path, S: String): String;
  begin
    if AnsiLastChar(Path)^ <> '\' then
      Result:= Path+'\'+S
    else
      Result:= Path+S;
  end;

var
  SearchRec: TSearchRec;
  NewNode: TTreeNode;

begin
  if FindFirst(SlashSep(ADirectory, '*.*'), faDirectory, SearchRec) = 0 then
  try
    repeat
      if ((SearchRec.Attr and faDirectory) <> 0) then
        if ((SearchRec.Name <> '.') and (SearchRec.Name <> '..')) then
        begin
          NewNode:= Tree.Items.AddChild(Start, SearchRec.Name);
          GetNodeDirs(SlashSep(ADirectory, SearchRec.Name), Tree, NewNode);
        end;
    until FindNext(SearchRec) <> 0;
  finally
    Findclose(SearchRec);
  end;
end;


TreeView1.Items.BeginUpDate;
TreeView1.Items.Clear;
GetNodeDirs('C:\', TreeView1, TreeView1.Items.AddChild(Nil, 'C:\'));
// TreeView1.AlphaSort;
TreeView1.Items.EndUpDate;

DelTurbo 27. Aug 2011 13:46

AW: TTreeView komige Speedprobleme...
 
Habe ich schon hinter mir. Da bremst eh die platte. Wenn man es 2x hintereinander laufen lässt, und er die sachen aus dem cache hohlt, habe ich das gleiche problem. Das füllen der TreeView ist wesentlich langsamer als auf anderen Systemen.

Ich glaube nicht das es ein Delphi problem ist. Ich denke es liegt am Windows selber. Blos weiss ich nicht was dort im eimer ist.

Deswegen fragte ich ja, ob das schonmal jemand hatte. Hätte ja sein können. Die hoffnung stirbt bekanntlich zuletzt.


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:02 Uhr.
Seite 1 von 4  1 23     Letzte » 

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf