Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

21

11.04.2009, 10:35

Dann fehlt dir wieder irgendwo das Freigeben von Speicher.

Ein Programm hat nur mehr Speicher zu belegen wenn es ihn auch braucht. Aber eine FPS aktuallisieren sollte keinen zusätzlichen Speicher benötigen.

Errschaffer

Alter Hase

  • »Errschaffer« ist der Autor dieses Themas

Beiträge: 865

Wohnort: Frankfurt

  • Private Nachricht senden

22

11.04.2009, 10:45

OK werd nochmal schauen.

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

23

11.04.2009, 13:33

Also mit 4KB/s kann man leben... bei mir springt der Bedarf alle 5 sekunden um +-10MB woher das genau kommt, weiß ich nicht, an deiner Stelle würde ich jetzt wegen 4kb nicht ewig nach einer ursache suchen... das kann auch ganz normal sein, vielleicht braucht dein programm einfach pro sek 4kb mehr ^^

Allerdings sollte es (wenn es nicht mehr objekte oder so verarbeitet [keine ahnung, was genau dein game macht]) natürlich irgendwann stagnieren, und aufhören speicher anzufordern ^^

Gotbread

Alter Hase

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

24

11.04.2009, 13:54

naja, eigentlich sollte man jedes speicherleck verhindern, vllt lässt man dein programm mal ein paar stunden laufen.

lädst du die schriftart für die fps etwa in jedem frame?

zeig uns einfach die stelle :D
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

"Es ist nicht undicht, es läuft über" - Homer Simpson

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

25

11.04.2009, 14:00

nein, diesen fehler hat er bereits beseitigt
ich denke er übergibt irgendeiner funktion mal einen pointer auf ein objekt und vergisst dann später, wenn es nicht mehr gebraucht wird, es zu löschen... so ist es mir am anfang öfters ergangen ^^

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

26

11.04.2009, 17:08

Übrigens gibt es sowas das schimpft sich mem leak detector. Kann ich jedem empfehlen :)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

27

18.04.2009, 12:07

Zitat

bei mir springt der Bedarf alle 5 sekunden um +-10MB woher das genau kommt, weiß ich nicht


Ich glaube das hat fast jeder. Ich bin mir nicht sicher, aber warscheinlich liegt das daran das der Speicher mit delete bzw delete[] nicht geleert wird, er ist noch so lange vorhanden bis er überschrieben wird.

Zitat

Übrigens gibt es sowas das schimpft sich mem leak detector. Kann ich jedem empfehlen


Wenn man sauber programmiert brauch man das nicht unbedingt. Habe in meiner Klassesammlung noch nie lange gebraucht um ein Memory Leak zu finden :)

28

18.04.2009, 12:40

Zitat von »"Deppomat"«

Ich glaube das hat fast jeder. Ich bin mir nicht sicher, aber warscheinlich liegt das daran das der Speicher mit delete bzw delete[] nicht geleert wird, er ist noch so lange vorhanden bis er überschrieben wird.
Ja, der Speicher wird meistens nicht sofort an das Betriebssystem zurückgegeben. Wenn er allerdings unaufhörlich weiterwächst, wirds langsam auffällig... :)

Zitat

Wenn man sauber programmiert brauch man das nicht unbedingt. Habe in meiner Klassesammlung noch nie lange gebraucht um ein Memory Leak zu finden :)
Wenn man nicht mehr allzu oft mit rohen Zeigern rumhantiert, sinkt auch die Gefahr für Memory Leaks drastisch. Aber je nachdem kann es trotzdem schwierig sein, diese manuell zu erkennen, besonders wenn sie sich nur im kleinen Rahmen und unter gewissen Bedingungen bemerkbar machen.

29

19.04.2009, 03:56

*ausgrab*

Zitat von »"Nox"«

Übrigens gibt es sowas das schimpft sich mem leak detector. Kann ich jedem empfehlen :)


Nach längerer Suche hab ich nun für Visual Studio einen gefunden, den ich auch empfehlen kann:

http://dmoulding.googlepages.com/vld

Lief bei mir nicht auf dem Laptop mit Vista, aber bestens unter XP. Es gibt noch viele Seiten mit älteren Versionen, damit hatte ich ebenfalls Probleme. Kurzanleitung:

Die Version aus dem Link runterladen, mit Installer installieren. Im Projekt die Pfade für Lib und Header hinzufügen (Installationspfad + '/lib' bzw. + '/include').
In main.cpp möglichst weit oben #include "vld.h"
Programm starten, beenden, und das Debuggingfenster bestaunen.

Ob es jetzt Ausnahmen gibt, die falsch detektiert oder nicht gefunden werden kann ich noch nicht beurteilen, aber bis jetzt macht das für mich einen sehr guten und hilfreichen Eindruck.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

30

19.04.2009, 15:32

MS VC++ besitzt sogar einen built-in, der nicht der schlechteste ist. Er hat zwar seine Macken, aber damit kann man eigentlich ganz gut umgehen.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Werbeanzeige