AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TTreeView komige Speedprobleme...

Ein Thema von DelTurbo · begonnen am 26. Aug 2011 · letzter Beitrag vom 10. Sep 2011
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Troisdorf
1.079 Beiträge
 
Delphi 2007 Architect
 
#1

TTreeView komige Speedprobleme...

  Alt 26. Aug 2011, 22:11
Delphi-Version: 7
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
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

Registriert seit: 13. Aug 2002
16.895 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TTreeView komige Speedprobleme...

  Alt 26. Aug 2011, 22:19
Ich schmeiß mal folgende "Zauberzeilen" in den Ring:

Items.BeginUpdate;
Items.EndUpdate;

bzw. virtueller Modus

....
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von rweinzierl
rweinzierl

Registriert seit: 22. Mär 2005
97 Beiträge
 
#3

AW: TTreeView komige Speedprobleme...

  Alt 27. Aug 2011, 07:08
Hallo

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

==> Mehr aufwand aber es lohnt sich.

mfg

Reinhold
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Troisdorf
1.079 Beiträge
 
Delphi 2007 Architect
 
#4

AW: TTreeView komige Speedprobleme...

  Alt 27. Aug 2011, 11:34
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?
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#5

AW: TTreeView komige Speedprobleme...

  Alt 27. Aug 2011, 11:42
Wieviele Items sind es denn? Hast du etwas Code zum zeigen, was das Hinzufügen angeht?
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Troisdorf
1.079 Beiträge
 
Delphi 2007 Architect
 
#6

AW: TTreeView komige Speedprobleme...

  Alt 27. Aug 2011, 11:56
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.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
FredlFesl

Registriert seit: 19. Apr 2011
293 Beiträge
 
Delphi 2009 Enterprise
 
#7

AW: TTreeView komige Speedprobleme...

  Alt 27. Aug 2011, 13:06
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?
Das Bild hängt schief.
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Troisdorf
1.079 Beiträge
 
Delphi 2007 Architect
 
#8

AW: TTreeView komige Speedprobleme...

  Alt 27. Aug 2011, 13:21
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.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!

Geändert von DelTurbo (27. Aug 2011 um 13:34 Uhr) Grund: Nachtrag
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.380 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: TTreeView komige Speedprobleme...

  Alt 27. Aug 2011, 13:36
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;
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Troisdorf
1.079 Beiträge
 
Delphi 2007 Architect
 
#10

AW: TTreeView komige Speedprobleme...

  Alt 27. Aug 2011, 13:46
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 meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 15:00 Uhr.
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