AGB  ·  Datenschutz  ·  Impressum  







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

Unerklärlicher Speicherfresser

Ein Thema von TurboMagic · begonnen am 26. Jun 2019 · letzter Beitrag vom 27. Jun 2019
 
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.038 Beiträge
 
Delphi 12 Athens
 
#22

AW: Unerklärlicher Speicherfresser

  Alt 26. Jun 2019, 22:03
Zitat:
{$ifdef CPU386}
Das zeigt ja schon, aus welcher Zeit das stammt. Ich würde auch auf Klassen und generische Listen wechseln, wenn ihr sowieso schon am umstellen seid.
Ähm, das ist die GetMem Routine der RTL!
Die benutzt du übrigens implizit auch andauernd

Und nein, ich glaube nicht dass ein Wechsel auf Objekte hier sinnvoll wäre.
Es würden nämlich im Worst case mehrere Tausend Objektinstanzen angelegt die
nur Daten halten und keinen eigenen Code haben. Das wäre nicht sinnvoll, und
vor dem Beginn der Umstellung auf TDictionary<T> zur Verwaltung der ganzen Daten
war es auch kein Speicherfresser.

=> irgend etwas ging dabei kaputt, es ist aber nicht die Verwendung von
TDictionary<T> an sich schuld daran, sondern jedes New() frisst diesen Speicher
und zu dem Zeitpunkt ist das Dictionary noch nicht ivolviert.

Es wäre immer noch zu klären, warum New im einen programm für jede PMyRegister
Allokation tatsächlich nur 12 Byte oder so allokiert und im anderen für die Allokation
des selben Datentyps plötzlich > 1K! Das ist die bisher unerklärliche Fragestellung.

Diese hat damit zu tun, dass einmal bei LEA Aufruf in GetMem intern normal weiter
gearbeitet wird und einmal wohin gesprungen wird, obwohl LEA kein Sprungbefehl ist.

Ok, im Programm gibt es auch Multithreading, ich werde morgen klären ob dieser Aufruf zur
Erzeugung im GUI Thread oder einem sekundären stattfindet.
  Mit Zitat antworten Zitat
 


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 09:12 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