Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

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

AW: Unerklärlicher Speicherfresser

  Alt 26. Jun 2019, 12:28
Hab grad mal geschaut.
New ist am Ende in der .exe auch einfach nur ein GetMem. Das sollte also keinen Unterschied machen (außer Delphi glaubt in deinem Projekt, aus welchem Grund auch immer, dass dein Record 4KB groß ist). Falls das beim Debuggen auch auftritt kannst du aber theoretisch mal auf das new einen Breakpoint machen und dir das ganze im CPU-Fenster anschauen.

Delphi-Quellcode:
var testByteArr: PByteArray;
begin
  New(testByteArr);
CPU-Fenster:
Code:
Unit3.pas.156: New(testByteArr);
0064E055 B800040000       mov eax,$00000400 <---
0064E05A E81D8EDBFF       call @GetMem
0064E05F 8945E4           mov [ebp-$1c],eax
Da kannst du leicht erkennen wie viel Speicher er für dein Record tatsächlich reserviert.
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