AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Button frisst Speicher?

Ein Thema von EmWieMichael · begonnen am 5. Feb 2019 · letzter Beitrag vom 7. Feb 2019
Antwort Antwort
Schokohase
(Gast)

n/a Beiträge
 
#1

AW: Button frisst Speicher?

  Alt 5. Feb 2019, 09:50
Du machst dir einen Kopf weil da einmalig ca. 3KB Speicher benötigt wird?

Für mich hört sich das nach einer Bitmap-Resource (evtl. der Glow-Effect) an, die von nun an im Speicher gehalten wird, und diese wird für alle (auch zukünftigen) Button-Instanzen verwendet (um Speicher zu sparen und die Performance zu steigern)

Geändert von Schokohase ( 5. Feb 2019 um 09:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Button frisst Speicher?

  Alt 5. Feb 2019, 09:53
Finde ich in Ordnung.

@Michael: das kann man im Prinzip leicht feststellen indem Du den Button gegen einen Standardbutton austauschst, oder?
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
EmWieMichael

Registriert seit: 28. Mär 2012
103 Beiträge
 
#3

AW: Button frisst Speicher?

  Alt 5. Feb 2019, 10:06
Vermutlich mache ich mir tatsächlich unnötig einen Kopf, das mag schon sein. Aber ich würde ganz gerne verstehen, warum der Speicher nicht sauber aufgeräumt wird. Eigentlich (!) bin ich bisher davon ausgegangen, dass mit einem TForm.Release alles aus dem Speicher entfernt wird, was durch die Form erzeugt wurde (Und jetzt wackelt mein Weltbild ).
Die Frage nach dem Standardbutton: Ja, mit dem Standardbutton - oder auch mit anderen TMS-Buttons - wird der Speicher wieder auf Ausgangsgröße zurückgesetzt.
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Button frisst Speicher?

  Alt 5. Feb 2019, 10:28
Aber ich würde ganz gerne verstehen, warum der Speicher nicht sauber aufgeräumt wird
Solange Du den Code nicht gelesen und das Leak gefunden hast, ist kein Urteil in Sachen "sauber" mMn unangebracht.

Wie oben schon geschrieben wurde: unter Umständen cached die Button-Klasse (nicht das Objekt) etwas, und wenn dieser Cache dann neu geöffnete weitere Fenster sich ein paar Millisekunden schneller öffnen lässt, ist das unter Umständen mehr wert als 3 KB Arbeitsspeicher.

Ich verwende in Debug-Versionen immer heaptrc (FreePascal), das loggt bei mir Beenden alle Memory Leaks. Etwas ähnliches gibt es doch auch in Delphi. Im Zweifel würde Dir das wohl auch ausspucken, in welcher Datei und welcher Zeile dieser Cache aufgebaut wird (wenn er nicht bei Programmende ordentlich zerstört wird).

Geändert von CCRDude ( 5. Feb 2019 um 10:30 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

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 15:28 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