Speichermanagement
-
Hi, ich wollte fragen, ob jemand eine gute Übersicht und Erklärung zum Thema Speichermanagement gibt.
-
dann frag
-
-
@.
Ich wollte mir einige Sachen nochmal ins Gedächtnis rufen.
z.B./*habe ich verstanden*/ void ta(int *a) //Seiteneffekt da lokale Belegung { int i; a=new int[5]; for(i=0;... a[i]=i; } int* tb(int *a) //Rückgabe { int i; a=new int[5]; for(i=0;... a[i]=i; return a; } int main() { int *test=NULL; ta(test); //test bleibt NULL test=tb(test); //test enthält die Werte return 0; }
Da gibt es noch weitere Sachen, die ich mir halt nochmal ansehen will, dann stelle ich schon meine Fragen.
-
Das hat aber mit Speichermanagement nichts zu tun. Eher mit Funktionsaufrufen, Call-by-Value und so.
-
Ja, damit fängt es doch aber an.
Erstmal die Variablen-"Geschichten" und dann Strukturen und Klassen.
Und dann kommt man früher oder später zum Speichermanagement.
-
Ok, werd ich mir vormerken. Wenn du eine Frage stellst, immer erstmal den Urschleim aufwärmen. Steht eigentlich dem entgegen, wie du sonst in diesem Forum auftrittst. Du hast doch zu jedem zweiten Thread ne Antwort parat.
-
Naja, fast zu jedem 2.
Wegen dem Speichermanagement, ich verbrate mit meinem Progi gerade 94MB Speicher und da mache ich mir (ganz) langsam Gedanken, ob ich da nicht etwas ändern kann (falsch gemacht habe).
-
Wegen dem Speichermanagement
Der Dativ ist dem Genetiv sein Tod
ich verbrate mit meinem Progi gerade 94MB Speicher
Was ist das für ein Programm und um was geht es hier? Programmgröße? RAM-Belegung zur Laufzeit? Ist das ein Spitzenwert oder Dauerzustand?
Ist irgendwie alles viel zu wage um vernünftig drüber reden zu können.
-
HumeSikkins schrieb:
Wegen dem Speichermanagement
Der Dativ ist dem Genetiv sein Tod
Naja, man gewöhnt sich an allem. :p
-
@hume
zum glück bist du nicht im südlichen süddeutschland aufgewachsen..
wir verbraten immer alles:
der butter
wegen dem sein hund..des isch halt so
-
Die Speicherbelegung ist ein Dauerzustand.
Im Programm geht es darum, das in einer eine CAD-Datei enthaltene Modell darzustellen.
Ich verstehe zwar nicht, wie Dir das weiterhelfen soll, aber bitte.
Ich wollte mich nur mal in diesem Zusammenhang mit dem Speichermanagement beschäftigen und evtl. gleich Verbesserungen am Programm vorzunehmen.
-
Ich verstehe zwar nicht, wie Dir das weiterhelfen soll, aber bitte.
Ok. Vergiss es einfach.
ich wollte mich nur mal in diesem Zusammenhang
Im Gegensatz zu deiner Aussage kann ich für meinen Teil keinen bestimmten Zusammenhang erkennen. Genau deshalb meine Fragen.
Naja, wie auch immer. Lies was über Speichermanagement. Am Besten irgendwas.Der Hilfeversuch war ein Irrtum meinerseits. Kommt nicht wieder vor
-
Tschuldigung wenn ich Dir jetzt auf die Füße getreten bin,
wenn ich eine direkte Frage ala "Warum geht <das> nicht?" habe werde ich sie stellen.Dann bin ich auch für Hilfe sehr dankbar, wenn ich allerdings nur etwas zum nachlesen suche, will ich es erstmal selber versuchen.
-
du musst erstmal genau sagen, WOZU du etwas zum nachlesen suchst.
sie haben versucht, herauszufinden, worum es hier geht.du wirfst einfach unkoordiniert mit begriffen um dich wie speichermanagement, und oben fängst du mit einem einfachen call by value an.
etwas weit gefasst das spektrum
-
Ok, genau suche ich jetzt etwas um die Größe des belegten Speichers zu minimieren.
Ich habe da auch schon etwas gefunden: man kann ja in einem char Wert 8 bool Werte unterbringen und belegt so nur 1/8 des Speichers.
-
daishi schrieb:
Ich habe da auch schon etwas gefunden: man kann ja in einem char Wert 8 bool Werte unterbringen und belegt so nur 1/8 des Speichers.
Entschuldige, aber wenn du nicht gerade zehntausende von bools hast, optimierst du da am komplett falschen Ende, wenn es um MBytes geht.
Du musst zuerst rausfinden, wo der Speicher verbraten wird, bevor du irgendwo rumoptimierst.
Hältst du irgendwelche großen, eventuell mehrdimensionalen Arrays im Speicher?
-
MFK schrieb:
[Hältst du irgendwelche großen, eventuell mehrdimensionalen Arrays im Speicher?
JA
struct CUSTOMVERTEX { double kruem; bool is_valid; bool is_kontur; bool is_edge; bool is_pos; bool not_used; bool del_mark; bool is_in; bool kreum_reg[4]; int edge_id; Vector3 point; Vector3 normal; };
Diese Ding kommt ja nach Datensatz 10000 bis 400000 mal vor.
Da ist es lohnent, wenn man ein paar Bytes sparen kann und evtl. den Speicher nach Bedarf vergrößer/verkleinern kann.