Forum: PC-Programmierung Speicher läuft voll C-Programm auf virtueller Maschine


von max .. (vbc2011)


Lesenswert?

Hallo,

ich habe folgendes Problem.
Mein Programm allokiert während der Laufzeit Speicher und gibt diesen 
auch wieder frei. Das funktioniert auch wunderbar - den Speicherbedarf 
von meinem Programm während der Laufzeit kann ich ja im Taskmanager 
ankucken!!

Der bleibt immer gleich (ca.).

Nun möchte ich genau diese Programm auf einr Virtuellen Maschine laufen 
lassen - da vergrößert sich der Speicher jedoch fortlaufend.

Woran kann das liegen??
Jemand eine Idee??

Danke schonmal...

von Peter II (Gast)


Lesenswert?

eine VM sollte sich in diesem punkt gleich verhalten. Ich vermute mal 
das dein Programm auf der VM etwas anders macht und du den speicher 
nicht freigibst?

Meinst du eigentlich dem Speicher der VM oder den Speicher deiner 
Answendung?

von Frank M. (aktenasche)


Lesenswert?

wie waers mit debuggen auf der vm

von max .. (vbc2011)


Lesenswert?

An Peter II
warum sollte das programm auf der VM etwas anderes machen.
also ich denke das kann nicht am programm selbst liegen - sondern eher 
an der umgebung - sprich am betriebssystem. auf der VM läuft MS Win 
Server 2003 (bei mir lokal läuft XP).

Der Speicherbedarf (lt. Taskmgr "MEM Usage") meiner Anwendung wächst an!
...

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

max .. schrieb:
> also ich denke das kann nicht am programm selbst liegen

Dann bleibt dir nix als WinXP zu installieren und fortan auf "das blöde 
MS Win Server 2003 was einfach mein Programm kaputt macht und ganz viel 
speicher frisst" zu schimpfen.

von Peter II (Gast)


Lesenswert?

max .. schrieb:
> warum sollte das programm auf der VM etwas anderes machen.
> also ich denke das kann nicht am programm selbst liegen - sondern eher
> an der umgebung - sprich am betriebssystem.

ich habe doch keine ahnung was dein Programm macht, wenn du z.b. DirectX 
nutzt dann hast du in der VM eine andere Grafigkarte als in deinem XP. 
Damit kann sich dein Programm anders verhalten.

Meine Programme laufen ohne Probleme in einer VM umgebung - daran kann 
es also bauschal nicht liegen.

von Imon (Gast)


Lesenswert?

Spekulieren hilft dir hier nicht weiter,

Debuggen ist angesagt. Ich denke auch das dein Programm sich aus irgend 
einen grund in der VM anders verhält als Außerhalb.
Finde raus was Anders läuft, setze vielleicht einfach mal einen profiler 
auf dein Programm an, vielleicht reicht das schon um die benötigten 
Informationen zu bekommen.

von (prx) A. K. (prx)


Lesenswert?

max .. schrieb:

> an der umgebung - sprich am betriebssystem. auf der VM läuft MS Win
> Server 2003 (bei mir lokal läuft XP).

Win2003 und WinXP sind vom Betriebssystem her technisch weitgehend 
gleich. Es gibt jedoch unterschiedliche Gewichtung von Prozessen und 
evtl. auch in der Speicherverwaltung.

von Daniel F. (danielosna)


Lesenswert?

Google einfach mal nach Memwatch... Das ist eine kleine Bibliothek, die 
malloc's und free's überwacht und dir bei Programmende eine schöne 
Log-Datei mit allen ungefreeten Pointern übergibt. Brauchbar vor allem 
für C und bedingt für C++.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.