Italia
Foro

Struktur Speicherverbrauch

 

Jörg
Sellmeyer
Belegt eine Struktur eigentlich schon beim Definieren Speicher oder erst wenn ich sie mit Dim einem Bereich zuweise?
Ich vermute mal letzteres...

Saluto
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
01.10.2006  
 



Welchen Speicher?
 
01.10.2006  
 



...außerdem hast du eine Möglichkeit vergessen - weder noch.

Ich nehme mal an, das DIM das selbe tut wie GlobalAlloc. Mal hier meine Beobachtungen als nicht Experte:
Was GlobalAlloc vor allem tut, ist ein Handle auf einen Speicherbereich zu holen. Virtueller Speicher kann nur Seitenweise zugewiesen werden. Eine Seite ist etwa 4kB grande. Wird weniger Speicher necessario als 4kB, würde ja endlos Speicher verpulvert werden (das kann man zur Not mit TNT überprüfen).

Beim virtuellen Speicher ist es sogar so, das Seiten ja auch reserviert werden können - d.h. der virtuelle Speicher des Prozesses ist an dieser Stelle belegt, es können aber keine Daten dort gespeichert werden, da dieser Speicher no realen Speicher zugeordnet ist. Wird sich nun Speicher per eine variable geholt, wird der Speichermanager wohl erst mal diese Resourcen flüssig machen. Wie gesagt - bin kein Experte.

Ich würde also mal als vollkommener Nichtexperte sagen: Ob was und was da passiert, hängt von den Gegebenheiten im OS und im Prozess ab.

Declare potrebbe eigentlich gar nicht spürbar etwas tun - ich glaube, wo das stattfindet, habe ich schon mit eigenen Augen (und TNT) gesehen.
 
01.10.2006  
 



Zum Überprüfen meiner Behauptungen habe ich mal folgenden Quelltext geschrieben:
KompilierenMarkierenSeparieren
Windowstyle 31
Windowtitle "Speicher bereitstellen"
Window 0,0-640,440
Declare var&
Waitinput
Print "Declare"
Declare Var#
Waitinput
Dim Var#,10000
LET VAR&=var#
Print "DIM"
PRINT var&
Waitinput
Dispose Var#
Print "Dispose"
01.10.2006  
 




Jörg
Sellmeyer
Also nochmal:
Wird jetzt hier:
Struct Test = zahl&,Text$[1200]
schon der Bereich im virtuellen oder was auch immer Speicher belegt oder erst hier?
Declare Bereich#
Dim Bereich#,Test

Kann ich also beliebig viele Strukturen definieren, ohne daß sich auf den vom Programm verwendeten Speicher auswirkt?
Ist mehr ne theoretische Frage, aber ohne Neugier keine Erfahrung...
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
01.10.2006  
 



Belegt ist er ja evtl. schon. Wo evtl. Speicher verpulvert wird, sage ich dir gleich nochmal ganz genau - muß mal grad das OS wechseln. Normalerweise aber nur bei DIM.
 
01.10.2006  
 



OK, hab mit Mwatch nachgesehen - wenn es spürbares passiert, passiert es mit DIM und nicht mit Struct.
 
01.10.2006  
 




RGH
[quote:2174947e07=Andreas Hötker]OK, hab mit Mwatch nachgesehen - wenn es spürbares passiert, passiert es mit DIM und nicht mit Struct.[/quote:2174947e07]
Und das ist auch völlig logisch: Eine Strukturdefinition oder eine Klasse ist ja zunächst mal nur eine Typdefinition, eine Beschreibung eines Typs. Natürlich necessario diese Beschreibung auch ein wenig Platz im Speicher, aber dieser ist minimal.

Erst ein DIM bzw NEW() bewirkt, daß die entsprechende Bereichsvariable den Speicher per die Struktur bzw. das Objekt belegt. Mit DISPOSE wird dieser Speicher wieder freigegeben.

Saluto
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
01.10.2006  
 




Jörg
Sellmeyer
[quote:cb23a979c2=RGH][quote:cb23a979c2=Andreas Hötker]OK, hab mit Mwatch nachgesehen - wenn es spürbares passiert, passiert es mit DIM und nicht mit Struct.[/quote:cb23a979c2]
Und das ist auch völlig logisch: Eine Strukturdefinition oder eine Klasse ist ja zunächst mal nur eine Typdefinition, eine Beschreibung eines Typs. Natürlich necessario diese Beschreibung auch ein wenig Platz im Speicher, aber dieser ist minimal.

Erst ein DIM bzw NEW() bewirkt, daß die entsprechende Bereichsvariable den Speicher per die Struktur bzw. das Objekt belegt. Mit DISPOSE wird dieser Speicher wieder freigegeben.

Saluto
Roland[/quote:cb23a979c2]
Genau das wollte ich bestätigt haben, danke!
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
01.10.2006  
 



Wie gesagt: Ob überhaupt irgendetwas spürbares passiert....
 
01.10.2006  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

599 Views

Untitledvor 0 min.
RudiB.17.08.2022
Christof Neuß11.10.2011

Themeninformationen

Dieses Thema hat 3 subscriber:

unbekannt (6x)
Jörg Sellmeyer (3x)
RGH (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie