AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Grafikperformance von Virtual Treeview

Ein Thema von Codehunter · begonnen am 15. Mär 2019 · letzter Beitrag vom 7. Jun 2019
Antwort Antwort
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: Grafikperformance von Virtual Treeview

  Alt 15. Mär 2019, 10:25
Ich benutze die VirtualTreeView Komponente auch in fast allen meinen Programmen und bin auch nicht gerade unerfahren mit der Komponente. Aber solch krasse Performance Probleme kenne ich gar nicht. Mein Tipp wäre ja gewesen, dass du da in einem Event etwas zeichnest, was wiederum etwas anderes übermalt und es deshalb zu einer Schleife kommt.

Aber wenn das sogar mit dem reinen GetText Event nicht richtig funktioniert, dann stellt sich mir wirklich die Frage was bei dir schief läuft.

Ich habe Programme geschrieben, in denen ich sogar die Selektion selbst male und in jeder Column noch ein Icon platziert wird (auch selbst gemalt). Der Tree scrollt nicht anders, als wenn ich einfach nur den RootNodeCount setze und kein Event behandele.

Allerdings habe ich auf meiner VM in der ich entwickele die Einstellung nicht geändert. Eventuell machen 128MB Grafikspeicher doch den entscheidenden Performanceverlust. Bei mir sind es die empfohlenen 1GB von VMWare (s. Screenshot). Als Grafikkarte habe ich eine GT630 verbaut (auch nicht die beste Karte). Aber keine Probleme.
Angehängte Grafiken
Dateityp: png vmware_2019-03-15_11-22-26.png (27,0 KB, 46x aufgerufen)
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#2

AW: Grafikperformance von Virtual Treeview

  Alt 15. Mär 2019, 11:44
Ruckeln entsteht bei uns nur, wenn wir die GetText / on*Paint nicht optimal programmiert haben.
z.B. langsame Berechnungen drin haben.

Der größte VST hat 120 Spalten und lädt ca. 33000 Zeilen.
Da merkt man die Menge, aber nicht so auffällig wie du es beschreibst.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.291 Beiträge
 
Delphi 12 Athens
 
#3

AW: Grafikperformance von Virtual Treeview

  Alt 15. Mär 2019, 13:00
Ich benutze die VirtualTreeView Komponente auch in fast allen meinen Programmen und bin auch nicht gerade unerfahren mit der Komponente. Aber solch krasse Performance Probleme kenne ich gar nicht. Mein Tipp wäre ja gewesen, dass du da in einem Event etwas zeichnest, was wiederum etwas anderes übermalt und es deshalb zu einer Schleife kommt.
Die gleiche Denke hatte ich auch und nach sowas hab ich lange gesucht. Vergeblich. Irgendwann dann ein Testprogramm gemacht und darin mit einem Array of Array of String eine zweidimensionale Struktur geschaffen, Zufallsdaten rein und dann in OnGetText nur über den NodeIndex bzw. den ColumnIndex die Zeile und Spalte bestimmt. Absolutes Minimum. Ergebnis war Ruckelzuckel. Was mich ziemlich geschockt hat weil ich den VST seit vielen Jahren verwende (schon lange zu Mike Lischkes Zeiten) und er da immer flott war. Allerdings habe ich in den letzten Jahren auch nicht mehr auf die Grafik-Performance geachtet, weil Entwicklermaschine flott und Problem nicht zu erkennen. Daher kann ich nicht sagen ab welcher Version sich das evtl. eingeschlichen hat.

Allerdings habe ich auf meiner VM in der ich entwickele die Einstellung nicht geändert. Eventuell machen 128MB Grafikspeicher doch den entscheidenden Performanceverlust. Bei mir sind es die empfohlenen 1GB von VMWare (s. Screenshot). Als Grafikkarte habe ich eine GT630 verbaut (auch nicht die beste Karte). Aber keine Probleme.
Ich verwende VirtualBox und da kann ich nicht mehr als 256 MB Videospeicher definieren. Ok, dass die Intel-iGPUs nicht der Hit sind ist ja bekannt. In der Kombination mit VirtualBox schaukelt sich da evtl. auch was hoch. Aber der Anwender der mich darauf ansprach hatte diese Konstellation nicht sondern ein natives Windows auf einem 7. Gen Core-i5 mit iGPU. Mit dedizierten Grakas (egal ob Highend oder Sparbrötchen) treten die Probleme nicht auf. Zumindest konnte ich subjektiv nichts feststellen.

Soeben habe ich noch interessante, aber genauso unerklärliche Zusammenhänge entdeckt: Ist das Formular auf dem der VST liegt maximiert (Windowstate=wsMaximized), sind die "Bremseffekte" ungleich stärker als bei WindowState=wsNormal. Selbst dann, wenn ich das Fenster manuell auf die komplette Größe des Bildschirms ziehe. Zweitens: Auf einem sekundären Bildschirm wird langsamer gezeichnet als auf einem Primärbildschirm. Drittens: Paradoxerweise wird das Geruckel weniger, wenn ich das Form mit dem VST auf DoubleBuffered=True setze.

Meine Vermutung geht da in Richtung einer Konstruktionseigenart (möchte nicht von Fehler sprechen) im VST. Dort werden ja ganze Kaskaden von Paint-Events aufgerufen, teilweise mehrfach (an Stage-Werte gebunden). Normalerweise wird da nur ein Zeiger auf das eine Canvas-Objekt des Treeview und ein Rectangle übergeben. Ich möchte aber nicht ausschließen, dass es irgendwo in den Tiefen des VST auch Bitmap-Kopien gemacht werden.

Wenn nun viele aufeinander folgende Zeichenoperationen auf einem GDI-Canvas erfolgen und die Videohardware ohnehin langsam ist, hat man anscheinend die beschriebenen Probleme.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter (15. Mär 2019 um 13:02 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.079 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Grafikperformance von Virtual Treeview

  Alt 15. Mär 2019, 15:40
Hast du das Problem schon auf Betriebssystemebene/GDI mit dem "Rohitab API Monitor" untersucht?
  Mit Zitat antworten Zitat
Bünni

Registriert seit: 4. Mär 2019
67 Beiträge
 
#5

AW: Grafikperformance von Virtual Treeview

  Alt 15. Mär 2019, 15:44
Ich arbeite gerade auch mit der Komponente. Welche Version benutzt du? Ich benutze 6.7 und habe keine Probleme soweit.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.291 Beiträge
 
Delphi 12 Athens
 
#6

AW: Grafikperformance von Virtual Treeview

  Alt 15. Mär 2019, 16:00
Ich arbeite gerade auch mit der Komponente. Welche Version benutzt du? Ich benutze 6.7 und habe keine Probleme soweit.
Ich habe die 7.1 vom Dezember letzten Jahres.

Hast du das Problem schon auf Betriebssystemebene/GDI mit dem "Rohitab API Monitor" untersucht?
Interessantes Tool. Muss ich mir nächste Woche mal anschauen.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.879 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Grafikperformance von Virtual Treeview

  Alt 15. Mär 2019, 16:09
Schon mal mit 7.2 versucht?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.291 Beiträge
 
Delphi 12 Athens
 
#8

AW: Grafikperformance von Virtual Treeview

  Alt 19. Mär 2019, 13:14
7.2 schaut genauso aus. Mittlerweile verorte ich das Problem innerhalb der VirtualBox Guest Additions. Die Darstellung ist auch in anderen Programmen teilweise sehr langsam. Wohl auch abhängig davon, ob diese GDI oder DirectDraw verwenden.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Antwort Antwort


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 +1. Es ist jetzt 11:15 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