AGB  ·  Datenschutz  ·  Impressum  







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

Performance Frage

Ein Thema von .chicken · begonnen am 22. Mai 2007 · letzter Beitrag vom 23. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#1

Performance Frage

  Alt 22. Mai 2007, 14:28
Also ich habe folgende Frage:
Wenn ich irgendetwas darstellen will, zB Text mit Schatten oder so, macht es mehr Sinn dann ein Bild zu laden oder das selbst zu zeichnen? Oder zB bei Gradients oder sowas alles, was ist sinnvoller?

Wenn mans selbst zeichnen kann selber zeichnen?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Performance Frage

  Alt 22. Mai 2007, 15:10
wenn man selbst zeichnen kann würde ich selbst zeichnen da es vom Datenvolumen her weniger ist.
Zum Beispiel ein Text hat zwischen den Buchstaben Freiraum welcher mit gespeichert wird. In einigen Fällen muss dieser Freiraum (Hintergrund) dann noch Transparent dargestellt werden was wieder Rechenleistung kostet. Dann ist es bedeutend einfach einfach den Text zur Laufzeit auszugeben.
Wenn es allerdings um Texte mit bestimmten Schriften geht ist ein Bild manchmal nicht vermeidbar weil die Schriften nicht auf jedem Zielsystem verfügbar sind.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#3

Re: Performance Frage

  Alt 22. Mai 2007, 15:19
Hm ok, und wenn es jetzt nicht nur um Texte geht?
Weil ich meine das kostet doch sicher Rechenzeit wenn man irgendwelche Effekte zeichnen lässt oder so, andererseits will man ja vermeiden tausend verschiedene Bilder(->viele MB) zu verwenden, oder?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Performance Frage

  Alt 22. Mai 2007, 15:23
Du musst das ganze ja nicht bei jedem zeichnen neu berechnen. Du kannst auch beim ersten zeichnen berechnen und das in ein Bitmap im speicher zwischenspeichern.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#5

Re: Performance Frage

  Alt 22. Mai 2007, 15:32
Klingt natürlich logisch

Dann hab ich dazu mal ne Frage:
Kann ich in einer Variable die nur für eine Prozedur gilt, ein Bild speichern und es am Ende der Prozedur nicht freigeben, um dann beim nächsten Aufruf der Prozedur wieder darauf zuzugreifen? Also ist das Bild dann noch wie beim alten Prozeduraufruf?
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Performance Frage

  Alt 22. Mai 2007, 15:36
nein das kannst du nicht. das musst du dann schon global speichern.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#7

Re: Performance Frage

  Alt 22. Mai 2007, 15:58
Ok Danke
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Performance Frage

  Alt 22. Mai 2007, 17:13
...das heißt: Du kannst auch mit lokalen Konstanten arbeiten.

Aber das ist nicht schön. Nicht machen!

Trotzdem ein Beispiel:

Delphi-Quellcode:
procedure DoSomething;
const
  storage: Integer = 0;
var
  bmp: TBitmap;
  ptr: Pointer;
begin
  bmp := TBitmap(TObject(storage));
  if bmp = nil then bmp := TBitmap.Create;

  //...
  //...

  ptr := @storage;
  Integer(storage^) := Integer(Pointer(bmp));
end;
Die Adresse des alloziierten Bitmaps ist dann immer in "storage" gespeichert und läuft dir nie aus dem scope.

Aber machs nicht, wenn dus nicht unbedingt brauchst! Für deinen Zweck fallen mir mindestens 2 schönere Lösungen ein.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Performance Frage

  Alt 22. Mai 2007, 17:20
@Luke: Hat der doppelte Cast einen Grund? (Also erst nach TObject casten um dann nach TBitmap zu casten)
Zudem geht die Variante auch nur wenn eingestellt ist das man konstanten einen Wert zuweisen darf (es also in wirklichkeit variablen sind)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Performance Frage

  Alt 22. Mai 2007, 17:52
Ja, stimmt, das habe ich jetzt umgangen, glaube ich. Und das mit dem doppelten Cast... sollte eigentlich nicht nötig sein, stimmt.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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