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