![]() |
Datenbank: TcxCustomDataSource • Version: 5 • Zugriff über: TcxCustomDataSource
QuantumGrid in Provider Mode und DataChanged: Performance-Problem
Hallo!
Ich habe hier ein DevExpress QuantumGrid, den ich in Provider Mode benutze und über ein von TcxCustomDataSource abgeleitetes Objekt sehr intensiv mit Daten befühle (bis zu 100 Datensätze/Sekunde). Jeden neuen Datensatz soll sofort im Grid angezeigt werden. Dafür rufe ich die Methode DataChanged des TcxCustomDataSource auf. Und genau hier habe ich ein Problem. Bei einer großen Menge der bereits vorhandenen Datensätzen friert mein Grid für mehre Sekunden ein. Das liegt wohl daran, dass beim Aufruf von DataChanged alle Datensätze neu geladen werden. Gibt es eine Möglichkeit, nur den neu hinzugefügten Datensatz dem Grid hinzu zu fügen, ohne das jedesmal die ganzen Daten neu geladen werden? |
AW: QuantumGrid in Provider Mode und DataChanged: Performance-Problem
Vielleicht helfen dir diese beiden Links.
![]() oder dieser ![]() Gruß Matze |
AW: QuantumGrid in Provider Mode und DataChanged: Performance-Problem
Vielen Dank für diese Links!
Das Problem ist, dass DataController meines Views keine Eigenschaft DataModeController hat. Ich vermute, dass diese Eigenschaft nur den DB-Varianten des Views zur Verfügung steht. Meine Grid ist an keine DB gebunden, ich nutze Provider Mode mit CustomDataSource. |
AW: QuantumGrid in Provider Mode und DataChanged: Performance-Problem
Zitat:
iREc := vDaten.DAtaController.AppendRecord; vDaten.DataController.VAlues[iREc,0] := 'Datensatz ' + IntToStr(iRec); Bei mir zeigt er einfach diesen neuen Datensatz an ohne was spezielles zu machen ... |
AW: QuantumGrid in Provider Mode und DataChanged: Performance-Problem
Warum soll jeder Datensatz sofort sichtbar sein? Mehr als 20 Bildwechsel pro Sekunde bekommt das Auge doch sowieso nicht mit.
Verzichte auf das Datachanged bei jedem neuen Datensatz und erstelle stattdessen einen Timer, der das DataChanged mehrmals pro Sekunde aufruft. So kannst Du sicher sein, das dir auch bei 10000 Datensätzen/Sek. der Rechner nicht einfriert. |
AW: QuantumGrid in Provider Mode und DataChanged: Performance-Problem
Zitat:
|
AW: QuantumGrid in Provider Mode und DataChanged: Performance-Problem
Zitat:
Zitat:
|
AW: QuantumGrid in Provider Mode und DataChanged: Performance-Problem
Das hilft dir jetzt aktuell nicht, aber du kannst ja mal für die Zukunft diese
![]() |
AW: QuantumGrid in Provider Mode und DataChanged: Performance-Problem
(Doppelmoppel. Bitte ignorieren. :oops:)
|
AW: QuantumGrid in Provider Mode und DataChanged: Performance-Problem
Zitat:
Das Problem ist ja allgemein bekannt, nur eine Lösung gibt's nach wie vor nicht. Ich habe auf dem DevExpress Forum mehrere Threads zu diesem Thema gefunden, einige bereits 2007 verfasst. Seit dem hat sich nichts getan in dieser Richtung. Ich habe gehofft, jemand hier hat sich vielleicht irgendwelche Tricks ausgedacht. Wäre schön... |
AW: QuantumGrid in Provider Mode und DataChanged: Performance-Problem
Zitat:
Wie viele Datensätze sind denn im Grid? |
AW: QuantumGrid in Provider Mode und DataChanged: Performance-Problem
Zitat:
Zitat:
Und trotzdem ist es ein großer Nachteil, wenn eine relativ teure Komponente keine einfache Möglichkeit bietet, die neue Records hinzuzufügen, ohne gleich den ganzen DataSet neu zu laden. Falls jemand eine Lösung hat, werde ich sehr dankbar! Viele Dank! |
AW: QuantumGrid in Provider Mode und DataChanged: Performance-Problem
Wenn du ganz ohne TcxCustomDatasource arbeitest, und die Daten gleich in die Records schreibst, geht es bei weitem am Schnellsten.
Außerdem gibt es noch dieses 'SmartRefresh' und 'GridMode' in den DataController.DataModeController-Optionen, vielleicht bringt das was. Ich verwende ein TcxGridTableView als Datencontainer (schwerer Verstoß gegen 'Trenne Funktion und Darstellung'), um Logdaten tonnenweise einzulesen. Da kommen schon einige 10.000 zusammen. mir reicht die Performance aus, aber ich habe nicht probiert, was passiert, wenn man das Grid schon sieht und daten hinzukommen... Schlimm wird das aber nicht sein. Im Übrigen ist (vielleicht) wirklich etwas faul, wenn Du 10.000 recs anzeigen musst. Wieso reicht nicht ein Ausschnitt? Die Daten an sich kannst Du ja komplett vorhalten, aber wenn Du z.B. im customDatasource immer nur die letzten 1000 darstellst (default) und nur bei Bedarf (in einem 2.Grid?) eine größere Menge? Ich würde mal mit dem GridMode und SmartRefresh spielen... |
AW: QuantumGrid in Provider Mode und DataChanged: Performance-Problem
Zitat:
Ganz ohne TcxCustomDataSource habe ich auch probiert und musste einen enormen Speicherverbrauch fesrstellen. |
AW: QuantumGrid in Provider Mode und DataChanged: Performance-Problem
Also ich hab das hier mal getestet. Das ist sauschnell, auch bei 10000 records (5 Spalten).
Ich hatte mal den Fall, das eine Datumsspalte mit einer entsprechenden Properties-Eigenschaft das Teil verdammt lahm gemacht hat. Um wie viele Spalten handelt es sich... Ich vermute, die Bremse ist woanders zu suchen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 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