AGB  ·  Datenschutz  ·  Impressum  







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

Delphi-Controls sind bei großen Mengen langsam

Ein Thema von luisk · begonnen am 25. Jun 2016 · letzter Beitrag vom 25. Jun 2016
Antwort Antwort
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#1

Delphi-Controls sind bei großen Mengen langsam

  Alt 25. Jun 2016, 09:18
Feststellung:
Delphi-Controls sind bei großen Mengen langsam.
Das sollte man dem Stand der Technik anpassen.
Selbst bei CSS in Webbrowsern kann man sehen, dass es schneller geht.

Geändert von luisk (25. Jun 2016 um 09:20 Uhr)
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Delphi-Controls sind bei großen Mengen langsam

  Alt 25. Jun 2016, 09:25
Mal Butter bei Fische.
Welche Controls und wie viele Daten? Welche Antwortzeiten werden als langsam erachtet, welche als schnell? Wir können nicht im leeren Raum diskutieren - wenn wir hier eine ernsthafte Diskussion führen wollen, dann brauchen wir eine gemeinsame konkrete Ausgangslage.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Delphi-Controls sind bei großen Mengen langsam

  Alt 25. Jun 2016, 09:29
Er sprach von 3000 Sublayouts mit ein paar Controls in einer Scrollbox.

Den gleichen Effekt habe ich aber unter C# Windows.Forms auch. Ohne Virtualisierung geht es nicht (schneller) und die gewrappten Windows-Controls können das nicht (mehr ist so ein Edit, Label, Button unter VCL/Windows.Forms nämlich nicht).
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

AW: Delphi-Controls sind bei großen Mengen langsam

  Alt 25. Jun 2016, 09:39
Windows allgemein wird langsam, wenn man zu viele Fenster öffnet. Der Delphi Overhead kommt da natürlich noch drauf, aber swo irre viel wird das jetzt auch nicht sein.
Zum Beispiel gibt es das Limit mit 10000 Fenstern pro Prozess, darüber winkt Windows mit dem Zaunpfahl, dass etwas nicht stimmt ^^

Wenn man wirklich so irre viel Zeug anzeigen will, dann darf man nicht zu allem ein Handle generieren. Vll. ein paar Links: https://blogs.msdn.microsoft.com/old...11-00/?p=36473 https://blogs.msdn.microsoft.com/old...15-00/?p=36183

Ich müsste mal gucken, wie sich eine WPF Listbox mit 3000 Elementen verhält .... WPF ist ja eigentlich nicht für extreme Performance bekannt ...
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Delphi-Controls sind bei großen Mengen langsam

  Alt 25. Jun 2016, 09:43
Ich müsste mal gucken, wie sich eine WPF Listbox mit 3000 Elementen verhält .... WPF ist ja eigentlich nicht für extreme Performance bekannt ...
pornoschnell ... wenn man mit der Virtualisierung arbeitet
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Delphi-Controls sind bei großen Mengen langsam

  Alt 25. Jun 2016, 09:52
Ich müsste mal gucken, wie sich eine WPF Listbox mit 3000 Elementen verhält .... WPF ist ja eigentlich nicht für extreme Performance bekannt ...
pornoschnell ... wenn man mit der Virtualisierung arbeitet
Und genau diese Virtualisierung macht z. B. das Beispiel von Mobile auch. 20 Datensätze werden angezeigt und der Rest gar nicht aufbereitet und zum Client übertragen.
Aber diese Virtualisierung bekommt man auch in Delphi sehr schnell hin bzw. wird ja mit dem TDBCtrlGrid direkt "codeless" unterstützt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Delphi-Controls sind bei großen Mengen langsam

  Alt 25. Jun 2016, 09:50
Zur info für Andere: Vordiskussionen erfolgten in anderen Thread: "wann gibt es in Delphi einen NAMESPACE wie in c#"


Zum Problem:
Ich vermute (Beispielprogramm steht noch aus - habe ich schon zwei mal angefragt) das der Programmiertechnische Ansatz falsch ist.

Wenn ich eine Datenmenge von tausenden Datensätzen und für jeden Datensatz z.B. 3 Edits, 2 Images und 1 Memo benötige wird Delphi (bzw. Windows) die Grätsche Machen wenn ich versuche tausende diese Controls auf einer Scrollbox anzulegen.


Sinnvoll ist es wie es ja mittlerweile bei Delphi seit einigen Jahren gibt ein "Repeater-Control" zu haben, auf das ich diese Controls lege und dieses Control sorgt dafür das die aktuell angezeigten Datensätze auch in Edits/Images/... visualisiert werden.

Das wäre dann das Gegenstück zum Paging bei HTML-Lösungen.

Macht man das nicht macht Delphi/Windows dir grätsche. Genauso macht der Browser ebenfalls dir grätsche wenn man diese 1000 Bilder in einem HTML-Dokument zum Client bringt (Von der höheren Renderingzeit abgesehen).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#8

AW: Delphi-Controls sind bei großen Mengen langsam

  Alt 25. Jun 2016, 10:26

Sinnvoll ist es wie es ja mittlerweile bei Delphi seit einigen Jahren gibt ein "Repeater-Control" zu haben, auf das ich diese Controls lege und dieses Control sorgt dafür das die aktuell angezeigten Datensätze auch in Edits/Images/... visualisiert werden.
Das sagt das Netz zu "Delphi repeater control":
https://www.devexpress.com/Support/C...etails/Q477685
https://www.google.de/webhp?sourceid...control+delphi

Hier Dein Quelltext:
Delphi-Quellcode:
for i:=1 to 5000 do begin
   l_Layout:=TLayout.create(scrollbox1);
   l_Layout.Parent:=scrollbox1;
    :
    create_Content(l_Layout);
end;
Ich sage, sowas sollte ein modernes System können.
Dass das Problem bei den Windows-Handles liegt ist schon klar.
  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 04:41 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