Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 07:29

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: glDraw*: Memory Leak?
BeitragVerfasst: Mi Jul 14, 2010 23:19 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

ich verzweifel grad.. ich hab ein MemoryLeak in meinem Programm entdeckt als ich mal die Speicherauslastung beobachtet hab. Die ging stetig hoch.. pro sekunde etwa 100kb.

Ich hab ewig lange gesucht und der reihe nach alles auskommentiert, bis ich rausgefundne habe das wenn ich die glDrawArrays calls auskommentiere der Speicherverbrauch nichtmehr weiter steigt.

Dachte ich mir "Gut.. ist wohl ein Speicherleck im glDrawArrays im aktuellen Treiber".. und hab es gegen glBegin/glEnd ausgetaucht... genau der geiche effekt.. noch immer steigt der Speicherverbrauch..

Ich hab grad nichtmal ansatzweise eine Idee was das Problem sein kann... sobald etwas gezeichnet wird ist das Speicherleck da.. und dabei liegt es nicht an den Daten von mir, denn wenn ich einfach nur nen fest definiertes Quad via glBegin/glEnd zeichne ist das leck ebenfalls da.

Hat irgendwer eine idee was da das problem sein kann?

Aya

PS: Das ganze passiert unter MacOSX.. auf dem iPhone "glaube" ich auch.. zumindest stürzt meine App immer nach einiger Zeit ab und zeigt typische Speichermangel merkmale (inkl. Memory Warnings im Debugger).

EDIT: 99% der Draw-Calls zeichnen nur ein Quad via TriangleFan.. also meist ist es: glDrawArrays(GL_TRIANGLE_FAN, 0, 4)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glDraw*: Memory Leak?
BeitragVerfasst: Do Jul 15, 2010 07:25 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Wirf mal einen Blick darauf: http://valgrind.org/, ist zwar grundsätzlich Linux - daher ein freies Programm -, aber sie unterstützen MacOSX auch (siehe "Platforms").

Ich kenn es selber nicht, aber es soll ein ziemlich mächtiges Tool sein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glDraw*: Memory Leak?
BeitragVerfasst: Do Jul 15, 2010 11:20 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Mhh... ich blick bei dem ding grad nich durch wie ich das compilieren soll... da sind zwar zig verschiedene Makefiles, aber irgendwie.. egal welche ich versuche zu 'Maken', nix klappt...

Ein simples:

Code:
./configure
make


klappt leider nicht, weil es kein standard Makefile gibt..


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glDraw*: Memory Leak?
BeitragVerfasst: Do Jul 15, 2010 12:15 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Hast du dir mal Instruments angesehen?

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glDraw*: Memory Leak?
BeitragVerfasst: Do Jul 15, 2010 13:06 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Ja, mit Instruments bin ich zuerst auf den MemoryLeak aufmerksam geworden.

Instruments ist allerdings leider sehr auf Objective-C ausgelegt, also bei C++ mäckert er an stellen wo ich nicht weiß wieso.. siehe hier: http://www.delphigl.com/forum/viewtopic.php?f=4&t=9333

Aya


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glDraw*: Memory Leak?
BeitragVerfasst: Do Jul 15, 2010 13:51 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Ich finde, Du solltest mit Valgrind etwas mehr Geduld haben. Das ist doch nicht nur so ein Hopp-Einmal-Brauchen-Und-Dann-Wegwerfen-Ding. Wenn Du Dich damit auskennst, ist das eine echte Bereicherung für Deine Programmierumgebung. Wenn Du professionell arbeitest, brauchst Du so etwas ohnehin.

Wenn Du jetzt Zeit hast, dann setz Dich auf den Hosenboden und mach mal. Stell Dir vor, Dir passiert so etwas, wenn Du mal einen ungeduldigen Kunden hast, was machst Du dann? Dann hast Du keine Zeit, Dich lange in ein neues Tool einzulesen.

Zum Beispiel könntest Du mal googeln nach "compile Valgrind"?! Würde mich doch sehr wundern, wenn da nichts rauskäme.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glDraw*: Memory Leak?
BeitragVerfasst: Do Jul 15, 2010 20:36 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Traude hat geschrieben:
Ich finde, Du solltest mit Valgrind etwas mehr Geduld haben. Das ist doch nicht nur so ein Hopp-Einmal-Brauchen-Und-Dann-Wegwerfen-Ding. Wenn Du Dich damit auskennst, ist das eine echte Bereicherung für Deine Programmierumgebung. Wenn Du professionell arbeitest, brauchst Du so etwas ohnehin.

Wenn Du jetzt Zeit hast, dann setz Dich auf den Hosenboden und mach mal. Stell Dir vor, Dir passiert so etwas, wenn Du mal einen ungeduldigen Kunden hast, was machst Du dann? Dann hast Du keine Zeit, Dich lange in ein neues Tool einzulesen.

Zum Beispiel könntest Du mal googeln nach "compile Valgrind"?! Würde mich doch sehr wundern, wenn da nichts rauskäme.


Ich weiß grad echt nicht was ich dazu sagen soll.. :roll: *sprachlos*

PS. hab es compliert bekommen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glDraw*: Memory Leak?
BeitragVerfasst: Do Jul 15, 2010 23:55 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Na also: geht doch. :wink:

Man nennt so etwas "motivationsfördernde Maßnahme". Ich wünsch Dir viel Erfolg mit Valgrind und find es toll, dass es Dir gelungen ist.

Viele Grüße
Traude


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glDraw*: Memory Leak?
BeitragVerfasst: Fr Jul 16, 2010 10:26 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Traude hat geschrieben:
Man nennt so etwas "motivationsfördernde Maßnahme". Ich wünsch Dir viel Erfolg mit Valgrind und find es toll, dass es Dir gelungen ist.

Danke mama... :roll: :shock:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glDraw*: Memory Leak?
BeitragVerfasst: Fr Jul 16, 2010 10:53 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Eigentlich gibt es binary builds und module wie gdb und valgrind sind oft in der compiler toolchain dabei.
Schlimmer ist es eher eine gute UI zu finden, damit man nicht immer auf Kommandozeile alles recht umständlich eintrippen und etwas unübersichtlich dargestellt bekommt.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glDraw*: Memory Leak?
BeitragVerfasst: Fr Jul 16, 2010 11:15 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Zitat:
Eigentlich gibt es binary builds und module wie gdb und valgrind sind oft in der compiler toolchain dabei.
Schlimmer ist es eher eine gute UI zu finden, damit man nicht immer auf Kommandozeile alles recht umständlich eintrippen und etwas unübersichtlich dargestellt bekommt.

Ich nehme an, dass das stimmt. Das Problem dabei ist nur: man kann sich keine nützliche Essenz daraus ziehen. Was heißt jetzt genau "Eigentlich gibt es binary builds"? Was für welche? Wo im Web sind die zu finden? Operationale Anweisungen, BITTE. Und das ist durchaus freundlich gemeint.
Viele Grüße
Mama :wink:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glDraw*: Memory Leak?
BeitragVerfasst: Fr Jul 16, 2010 12:23 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
In Linux liegt es in den paketmanagern dabei(z.B. "yum install valgrind"), bei Mac OS X gibt es nur eine inoffiziellen port, der nicht gerade stable ist und für windows gibt es auch kein support. Valgrind ist eng mit gcc verbunden und mingw!=gcc.
Wenn man Platformübergreifende memory leak detection will, dann muss man zu anderen Lösungen greifen, google und sourceforge haben viele Projekte, die sich damit beschäftigen.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 15 Queries | GZIP : On ]