AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Firemonkey Grid Performance

Ein Thema von CHackbart · begonnen am 4. Nov 2014 · letzter Beitrag vom 14. Nov 2014
Antwort Antwort
Seite 1 von 2  1 2   
CHackbart

Registriert seit: 22. Okt 2012
224 Beiträge
 
#1

Firemonkey Grid Performance

  Alt 4. Nov 2014, 08:57
Hi,

ja ich weiß das Thema ist alt und hat soo einen Bart Derzeit sitze ich daran ein Projekt für Mac, Android und iOS fertigzustellen und beiße mir ein bisschen die Zähne daran aus. Die Hauptanwendung läuft ausnahmslos mit einer eigenen Engine via OpenGL und kann selbst HEVC UHD Streams flüssig darstellen (allerdings nicht auf Mobilgeräten). Jedoch nutze ich in der Einstellungsseite normales Firemonkey.
Für die Kanalverwaltung habe ich mich entschieden ein TGrid zu benutzen, da TListview beim Erstellen der Liste untragbar langsam ist. 5000 Einträge dauern schnell mal 1.5 Sekunden und TGrid kann man immerhin via GetValue relativ schnell befüllen. Leider ist letzteres extrem unperformant, vor allem beim Scrollen durch große Listen.
Bei DVB-S kommt man zum Beispiel auf mehrere tausend Sender und gelangt schnell an die Grenzen der Unbedienbarkeit. Putzig eigentlich, da ich im eigenen OSD damit keinerlei Probleme habe und die CPU Last nicht einmal messbar ist. TMS habe ich testweise auch probiert, aber die sind noch langsamer. Kennt jemand eine einfache Alternative die nicht für jede Zelle ein eigenes Objekt erstellt?

Christian
PS: Das Verwenden einer nativen Anzeige wollte ich eigentlich vermeiden.
Miniaturansicht angehängter Grafiken
list.jpg  

Geändert von CHackbart ( 4. Nov 2014 um 09:03 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.582 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Firemonkey Grid Performance

  Alt 4. Nov 2014, 09:18
http://www.fmxexpress.com/blazing-fa...droid-and-ios/
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.508 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Firemonkey Grid Performance

  Alt 4. Nov 2014, 09:20
Kurz gesagt ist es wohl leider so: FMX verhält sich zu nativen Komponenten wie vor Jahren Pascal zu Assembler.

Etwas länger: Wenn es auf Performance in Anwendungen ankommt, die über die Kindergartenbeispiele von Embarcadero hinausgehen, kommt man an nativen Komponenten nicht vorbei.

Sherlock
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
CHackbart

Registriert seit: 22. Okt 2012
224 Beiträge
 
#4

AW: Firemonkey Grid Performance

  Alt 4. Nov 2014, 09:21
Hmm 300 Dollar wollte ich dafür eigentlich nicht ausgeben, aber ich teste die Demo mal ob das wirklich *blazing fast* ist.

@Sherlock: Das hab ich schon befürchtet, was aber das ganze System adabsurdum führt. Zum Glück beschränkt sich in meinem Fall die notwendige Darstellung nur auf ein Formular und das holt sich die Daten über ein festes Interface aus einer von der Darstellung getrennten Klasse.
  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: Firemonkey Grid Performance

  Alt 4. Nov 2014, 10:54
Das Erzeugen von 5000 Einträgen in der ListView dauert auf einem Mobile-Device schon so seine 1,5 Sekunden.

Der Trick besteht aber darin, die Einträge bei einem Refresh wiederzuverwenden und dann sind 5000 Einträge in ca. 120ms abgefrühstückt. Ich kann dmit leben.
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 Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
1.920 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Firemonkey Grid Performance

  Alt 4. Nov 2014, 16:38
Leider hast Du nicht erwähnt, mit welcher Delphi-Version Du arbeitest. Denn ab XE6 ist die Performance des Grids ERHEBLICH gesteigert worden. Unter Windows ist es annähernd so schnell wie das VCL-Grid.

Erst unter XE6/XE7 habe ich mein PC-Rechnungsprogramm auch für die MAC-Plattform fertig gemacht, weil erst ab da die Geschwindigkeit mit mehreren 1000 Einträgen im Grid OK ist.

Geändert von Harry Stahl ( 4. Nov 2014 um 16:40 Uhr)
  Mit Zitat antworten Zitat
CHackbart

Registriert seit: 22. Okt 2012
224 Beiträge
 
#7

AW: Firemonkey Grid Performance

  Alt 4. Nov 2014, 17:45
Die Anwendung ist in XE5 erstellt.

Christian
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
3.954 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Firemonkey Grid Performance

  Alt 4. Nov 2014, 17:48
Grids habe ich ganz von meiner Liste gestrichen... Listbox auch.. ListView geht... ist mir aber zu "unhandlich" während der Designtime.
Für alles andere erzeuge ich mir eine Scrollbox und darauf Images mit meinen Inhalten...

Das scrollt dann so schnell das man es nicht glauben kann...

Außerdem muss man ja nicht 5000 oder mehr Einträge sofort erzeugen. Wie viele können dargestellt werden? 5?
Also erzeuge ich mir die ersten 100... Bis einer dahin gescrollt hat hab ich wieder 100 erzeugt. usw.

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
1.920 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Firemonkey Grid Performance

  Alt 4. Nov 2014, 19:58
OK, bei XE5 kannst Du es leider vergessen. Das hakelt und ist leider wenig performant. Aber ab XE6 ist das wirklich ziemlich schnell.

Außerdem muss man ja nicht 5000 oder mehr Einträge sofort erzeugen. Wie viele können dargestellt werden? 5?
Mavarik
Das macht das Grid ja auch nicht. Mit GetValue werden nur die erzeugt, die gerade angezeigt werden müssen. Die Daten selber würde ich natürlich nie im Grid selber verwalten. Es ist nach meinem Verständnis immer nur ein Anzeige- oder Auswahlobjekt.

Geändert von Harry Stahl ( 4. Nov 2014 um 20:01 Uhr)
  Mit Zitat antworten Zitat
CHackbart

Registriert seit: 22. Okt 2012
224 Beiträge
 
#10

AW: Firemonkey Grid Performance

  Alt 13. Nov 2014, 20:01
Ich habe XE7 in der Demo getestet und das geht messbar schneller. Da ich deswegen nicht gleich eine neue Delphi Version kaufen wollte habe ich eine eigene "Grid"-Komponente geschrieben. Das Ergebnis ist besser als ich gehofft habe

Geändert von CHackbart (13. Nov 2014 um 20:04 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 05:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf