Delphi-PRAXiS
Seite 5 von 6   « Erste     345 6      

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)

Popov 25. Mär 2014 18:28

AW: VirtualStringTree - Nodes hinzufügen
 
Ich weiß nicht, aber kann es sein, dass dir dein Virenscanner dazwischen redet? Je nach Virenscanner wird jede Datei die angepackt wird, wenn auch nur markiert im Explorer, gescannt. Was mir aufgefallen ist, dass dein Programm beim ersten Durchlauf etwa 6 Sekunden gebraucht hat, dann stets um die 600 ms. Falls du einen Virenscanner hast, schalte den mal für einen Test ab.

Ansonsten finde ich, dass dein Fenster etwas zäh ist, d. h. länger für den Aufbau braucht. Evtl. liegt das an deiner Komponente. Wendest du auch BeginUpdate und EndUpdate im Code?

d7user1 25. Mär 2014 18:32

AW: VirtualStringTree - Nodes hinzufügen
 
das könnte daran liegen dass ich den font und den hintergrund einfärbe und jeweils zwei icons pro node hinzufüge.

jawohl. nutze begin und endupdate.
wenn der letzte node erreich ist, rufe ich aber einmal VST.Invalidate auf da sonst, wenn zu wenige nodes vorhanden sind (keine scrollbar), die nodes nicht eingefärbt werden.

sehr interessanter ansatz mit dem virenscanner. aber mit ausgeschaltetem und eingeschaltetem virenscanner benötigt die testanwendung 4.5 sekunden. seltam.

Popov 25. Mär 2014 18:50

AW: VirtualStringTree - Nodes hinzufügen
 
Nun, das könnte alles ein Grund sein, aber mein Beispiel nutzt das nicht und braucht bei dir auch 5 Sekunden.

d7user1 25. Mär 2014 19:21

AW: VirtualStringTree - Nodes hinzufügen
 
ja, das ist sehr seltsam.
auch seltsam ist dass mein beispiel bei dir das erste mal länger braucht als danach.

aber wie bereits gefragt, kann es sei dass das daran liegt dass ich einen laptop benutze?

Popov 25. Mär 2014 19:50

AW: VirtualStringTree - Nodes hinzufügen
 
Reduzieren wir alles auf das Nötigste. Führe mal den Code aus und gibt das Ergebnis aus der Zwischenablage hier zurück:
Delphi-Quellcode:
uses
  DateUtils, Clipbrd;

procedure Test(SearchPath: String; var Sum: Integer);
var
  SearchRec: TSearchRec;
begin
  SearchPath := IncludeTrailingPathDelimiter(SearchPath);

  if FindFirst(SearchPath + '*.*', faAnyFile or faDirectory, SearchRec) = 0 then
  try
    repeat
      Inc(Sum);
    until FindNext(SearchRec) <> 0;
  finally FindClose(SearchRec) end;

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

procedure TForm1.Button1Click(Sender: TObject);
var
  T1, T2: TTime;
  A: Integer;
  s: String;
begin
  T1 := Now;
  A := 0;
  Test('c:\windows\', A);
  T2 := Now;

  s := Format('Anzahl Daten: %d; Zeit im Millisekunden: %d', [A, MilliSecondsBetween(T1, T2)]);
  ShowMessage(s);
  Clipboard.AsText := s; //kopiert Ergebnis in Zwischenablage
end;

d7user1 25. Mär 2014 20:04

AW: VirtualStringTree - Nodes hinzufügen
 
ok, also. programm (nur dieser code) wurde kompiliert und direkt mit der ide ausgeführt.

klick 1: Anzahl Daten: 119168; Zeit im Millisekunden: 4319

klick 2: Anzahl Daten: 119168; Zeit im Millisekunden: 4189

klick 3: Anzahl Daten: 119168; Zeit im Millisekunden: 4087

Popov 25. Mär 2014 20:23

AW: VirtualStringTree - Nodes hinzufügen
 
Dann liegt das am Zugriff und nicht an deinem Programm. Irgendwo gibt es eine Bremse.

Und Laptop? Ich kenne Probleme mit Laptops, aber keine diesbezüglich. Evtl. Überhitzung? Was sagt HD Tune? Keine Temperaturanzeige? Führe mal CrystalDiskInfo aus.

d7user1 25. Mär 2014 20:31

AW: VirtualStringTree - Nodes hinzufügen
 
HDTune sagt dass meine systemfestplatte 32°C warm ist. meine sekundäre festplatte welche verbaut ist ist 32°C warm. denke nicht dass das heiß wäre für einen laptop.

edit: ich melde mich in wenigen minuten nochmal, denn CrystalDiskInfo zeigt mir ganz neue optionen und informationen. z.b. lautstärke und performance-regler.

edit 2:
also. nach änderung dieser akustikeinstellungen auf "leistung" wird dein code, popov, nun in 3.8 sekunden (statt 4 bis 4.3)ausgeführt und meiner in 4.8 sekunden (statt 5 bis 6).

aber mehr passiert da nicht.

jaenicke 25. Mär 2014 21:30

AW: VirtualStringTree - Nodes hinzufügen
 
Also bei mir ist das mit einer Samsung 840er Evo SSD auch nicht schneller... 191.000 Dateien und 5-9 Sekunden (beim ersten Start die 9 Sekunden, logisch, danach weniger)...

d7user1 25. Mär 2014 21:43

AW: VirtualStringTree - Nodes hinzufügen
 
DAS gibt mir zu denken.
das bedeutet dass selbst eine SSD nicht viel schneller zu sein scheint und demnach das problem nicht bei mir liegt, da es eventuell gar keins gibt?

ich glaube ich muss in die klappsmühle.

warum erreichst du, popov, so gute zeiten und wir beide nicht?


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 Uhr.
Seite 5 von 6   « Erste     345 6      

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