AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

GDI+ Performance Tipps

Ein Thema von Neutral General · begonnen am 23. Aug 2011 · letzter Beitrag vom 30. Jul 2013
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: GDI+ Performance Tipps

  Alt 23. Aug 2011, 22:42
@rollstuhlfahrer & NamenLozer:

Das ist sehr unterschiedlich. Auf einem schwächeren Computer (Intel Core Duo 1,8GHz) (Win 7) bekomme ich ca. 15 FPS, bei mir Zuhause auf einem i5 4x2,66GHz (Win 7) bekomme ich ca. 45 FPS (Ohne Ändern des Pixelformats sind es gerade mal 25).

Wobei die FPS aber auch sehr davon abhängen wie viel überhaupt sichtbar ist. Wenn ich das Formular sehr klein mache und man nur noch einen kleinen Ausschnitt sieht (250x350) bekomme ich fast 100 FPS.

Wobei es mir aber ganz unabhängig von den bisherigen FPS um darum ging von euch ggf. kleinere oder größere Tricks/Tipps zu erfahren um das ganze noch ein bisschen besser/schneller zu machen.

@EWeiss:

Ja könnte noch prüfen ob das Bild nicht schon in diesem Format vorliegt.
Habe im Internet einen Post gefunden in dem jemand empfiehlt dieses Pixelformat zu verwenden (weil: weiß ich nicht mehr genau). Hab es dann ausprobiert und es hat tatsächlich einen deutlichen Geschwindigkeitsschub gebracht

Der Wrapper wird sicher ein bisschen ausbremsen. Aber ich würde fast behaupten, dass man das kaum spüren dürfte, da die Methoden der Klassen größtenteils 1:1 die GDI+ Funktionen kapseln und dadurch nicht viel mehr Overhead als der zusätzliche Methodenaufruf entstehen sollte.


Mir ging es auch um allgemeine Tipps wie
"Verwende niemals das-und-das, weil das ist total langsam! Machs lieber so-und-so!"

Falls da jemand aus seiner Erfahrung irgendetwas derartiges berichten kann, würde ich mich freuen
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: GDI+ Performance Tipps

  Alt 23. Aug 2011, 23:26
Zitat:
Ja könnte noch prüfen ob das Bild nicht schon in diesem Format vorliegt.
War nur ein Tip von mir
Macht nicht wirklich sinn alles doppelt zu machen.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von ehX
ehX

Registriert seit: 11. Aug 2011
Ort: Augsburg
55 Beiträge
 
Delphi 2009 Professional
 
#3

AW: GDI+ Performance Tipps

  Alt 24. Aug 2011, 00:28
Zitat:
Verwende niemals das-und-das, weil das ist total langsam! Machs lieber so-und-so!"
Sorry, aber muss sein:
Verwende niemals GDI+, weil das ist total langsam. Machs lieber mit Direct2D oder auch OpenGL....vor Allem....in der derzeitigen W7-Welt, warum noch was neues mit GDI+ entwicklen?


*duck*


P.S: Ja, es IST komplizierter und JA, nicht jeder 0815-Consumer-PC kann es gut...aber der kann auch kein GDI+ gut (schnell) rendern.
Also: Blut lecken und das richtige für Grafik nehmen

Folgender Artikel solle auch darüber Aufschluss geben, warum GDI+ zwar hardwarebeschleunigt, aber dennoch veraltet und unterlegen ist, bzw. für neue Projekte nicht mehr verwendet werden sollte:
http://blogs.msdn.com/b/directx/arch...d-and-gdi.aspx

P.P.S: Sobald du die GPU mal unter Kontrolle hast, magst du nie mehr zurück zur CPU oder Pseudo-GPU-Beschleunigung für das Rendering, glaub mir
Fin

Geändert von ehX (24. Aug 2011 um 00:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: GDI+ Performance Tipps

  Alt 24. Aug 2011, 12:05
Hallo,

Ja DirectX ist immer sone Sache
Hab es bisher nie geschafft so richtig da rein zu kommen.

Man findet überall im Internet Initialisierungs-Code für DX (D3D), aber dann hört es auch schon fast auf.
Und dann bin ich immer etwas erschlagen von den tausenden Funktionen und Konstanten und weiß nicht mehr wo ich da jetzt weiter ansetzen soll.

Das was ich jetzt mit GDI+ mache war auch weil ich mir mal ein paar GDI+ Kenntnisse aneignen wollte.
Ob ich damit irgendwas ernsthaftes programmiert hätte, kann ich nicht sagen
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: GDI+ Performance Tipps

  Alt 24. Aug 2011, 13:35
Zitat:
warum noch was neues mit GDI+ entwicklen?
Weil es spass macht?
Und nicht jeder das machen muss was dir so vorschwebt?

Und Messbar langsamer?
Denke mal nicht.
Nur weil die Zeichenoperationen von der GPU, quasi ausgelagert werden ist das nicht schneller für mich.
Rechne die auslastung der GPU auf die CPU um dann ist es genauso langsam..
Es wird also nur suggestiert das man mit DX schneller ist.

Zitat:
P.P.S: Sobald du die GPU mal unter Kontrolle hast, magst du nie mehr zurück zur CPU oder Pseudo-GPU-Beschleunigung für das Rendering, glaub mir
Bla, bla

Ich gebe nichts auf Blogs die irgendwelche vergleiche ziehen vor allem dann nicht wenn es der Hersteller selber ist.


gruss

Geändert von EWeiss (24. Aug 2011 um 13:38 Uhr)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#6

AW: GDI+ Performance Tipps

  Alt 24. Aug 2011, 13:55
Und Messbar langsamer?
Denke mal nicht.
Nur weil die Zeichenoperationen von der GPU, quasi ausgelagert werden ist das nicht schneller für mich.
Rechne die auslastung der GPU auf die CPU um dann ist es genauso langsam..
Es wird also nur suggestiert das man mit DX schneller ist.
Ähm wat. Und ob GPUs bei Grafikverarbeitungen schneller (und effizienter) sind... das liegt einfach an der anderen Architektur. Der Unterschied ist gewaltig (eine GPU ist u.U. locker 1000× so schnell wie eine CPU, wenn nicht mehr).

Messbar ist der Unterschied also auf jeden Fall. Spürbar nicht unbedingt, je nachdem, was man macht...
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: GDI+ Performance Tipps

  Alt 24. Aug 2011, 14:07
Und Messbar langsamer?
Denke mal nicht.
Nur weil die Zeichenoperationen von der GPU, quasi ausgelagert werden ist das nicht schneller für mich.
Rechne die auslastung der GPU auf die CPU um dann ist es genauso langsam..
Es wird also nur suggestiert das man mit DX schneller ist.
Ähm wat. Und ob GPUs bei Grafikverarbeitungen schneller (und effizienter) sind... das liegt einfach an der anderen Architektur. Der Unterschied ist gewaltig (eine GPU ist u.U. locker 1000× so schnell wie eine CPU, wenn nicht mehr).

Messbar ist der Unterschied also auf jeden Fall. Spürbar nicht unbedingt, je nachdem, was man macht...
Erstelle eine Anwendung in DX und mit GDI+
Nimm ne Grafikkarte welche das Rendern über GPU nicht unterstützt
Dann sage mir ist DX schneller oder nicht ?

Was ist dann noch Messbar!
Wenn schon vergleiche anstellen dann zu gleichen bedingungen.

Zitat:
Eben, um einen Nagel in die Wand zu schlagen benutzt man zweckmäßigerweise einen Hammer.
Was ich sage Bin deiner Meinung!

Zitat:
Für Spiele ist DX sicher besser geeignet.
Jup

gruss

Geändert von EWeiss (24. Aug 2011 um 14:17 Uhr)
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#8

AW: GDI+ Performance Tipps

  Alt 24. Aug 2011, 20:03
schonmal versucht nicht jedes mal TGPGraphics zu erstellen sondern einmal global?
Und unter GDI funktioneirt pf24Bit eignetlich immer am schnellsten, kenn mich mi GDI+ net wirklch aus
  Mit Zitat antworten Zitat
VT

Registriert seit: 9. Dez 2002
11 Beiträge
 
#9

AW: GDI+ Performance Tipps

  Alt 30. Jul 2013, 16:14
@Neutral General

Den größten Performancesprung kannst du machen indem du den VCL internen Rendercode aushebelst (erklär ich jetzt mal nicht, bei bedarf nachhaken) und du TGPCachedBitmap verwendest anstatt TGPImage. Die "cached bitmaps" werden im optimierten Format für den Canvas abgelegt und sind somit rasend schnell mit GDI+ gezeichnet über TGPGraphics.DrawCachedBitmap().
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: GDI+ Performance Tipps

  Alt 24. Aug 2011, 13:55
Klar, man muss ja die GDI+ nicht direkt als tot hinstellen und ich denke für viele Sachen ist GDI+ um einiges besser geeignet und auch einfacher als DX.

Allerdings ist DirectX schon schneller als die GDI+. Denke nicht, dass man damit Echtzeit-Graphik mit mehr als vllt. 30 FPS darstellen kann (Es sei denn es hat ne Auflösung von 300x200 oder so).

Aber dafür ist die GDI+ meiner Meinung nach auch nicht Gedacht. Um so schöne Programme zu machen wie EWeiss bietet sich GDI+ an. Für Spiele ist DX sicher besser geeignet.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  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 22:27 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