Account Options

  1. Sign in
The old Google Groups will be going away soon.
Switch to the new Google Groups.
Google Groups Home
« Groups Home
Garbage Collection ohne neu zu compilieren
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  9 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Roman Racine  
View profile   Translate to Translated (View Original)
 More options Feb 7, 5:34 pm
Newsgroups: de.comp.os.unix.linux.misc
From: Roman Racine <roman.rac...@gmx.de>
Date: Tue, 07 Feb 2012 23:34:05 +0100
Local: Tues, Feb 7 2012 5:34 pm
Subject: Garbage Collection ohne neu zu compilieren
Ich habe hier Binaries einer Closed Source Software. Diese hat ein Memory
Leak, das unter gewissen Anwendungsmustern, die in letzter Zeit gehäuft
vorkommen, extrem störend ist, d.h. ständige Neustarts notwendig macht.

Ich habe mir gedacht, dass dieses Problem behoben werden könnte, wenn
Aufrufe für malloc() u.ä. von der glibc in eine Library umgebogen würde, die
Garbage Collection macht. Dadurch hätte man diese Funktionalität, ohne dass
die Software neu compiliert werden müsste (was im Moment nicht möglich ist,
da der Source Code nicht verfügbar ist).

Ein ähnliches Vorgehen hat valgrind zur detektierung von Memory Leaks,
technisch möglich müsste es also sein, allerdings habe ich nichts
dergleichen gefunden. Der Boehm Garbage Collector erfordert anscheinend,
dass die Software neu compiliert wird.

Hat jemand hier Vorschläge?

Gruss

Roman°


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Sven Hartge  
View profile   Translate to Translated (View Original)
 More options Feb 7, 8:37 pm
Newsgroups: de.comp.os.unix.linux.misc
From: Sven Hartge <sh-...@svenhartge.de>
Date: Wed, 8 Feb 2012 02:37:35 +0100
Local: Tues, Feb 7 2012 8:37 pm
Subject: Re: Garbage Collection ohne neu zu compilieren

Heiko Schlenker <hsch...@gmx.de> wrote:
> * Roman Racine <roman.rac...@gmx.de> schrieb:
>> Hat jemand hier Vorschläge?
> LD_PRELOAD

Ich glaube, das kenne Roman. Er sucht nur etwas, _das_ er preloaden
kann, welches das malloc(), was ihm Probleme macht, ersetzt bzw.
ergänzt.


--
Sigmentation fault. Core dumped.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Stefan Enzinger  
View profile   Translate to Translated (View Original)
 More options Feb 7, 11:20 pm
Newsgroups: de.comp.os.unix.linux.misc
From: Stefan Enzinger <mind...@aon.at>
Date: Wed, 08 Feb 2012 05:20:51 +0100
Local: Tues, Feb 7 2012 11:20 pm
Subject: Re: Garbage Collection ohne neu zu compilieren
On 02/07/2012 11:34 PM, Roman Racine wrote:

> Ein ähnliches Vorgehen hat valgrind zur detektierung von Memory Leaks,
> technisch möglich müsste es also sein, allerdings habe ich nichts
> dergleichen gefunden. Der Boehm Garbage Collector erfordert anscheinend,
> dass die Software neu compiliert wird.

Valgrind bedingt allerdinge erhebliche performance einbußen, um diese
Felherl zu erkennen. Ich denke also, dass so ein garbage collector, so
es ihn gibt, das kaum performant erledigen kann...

just my 2 cent


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Marcel Müller  
View profile   Translate to Translated (View Original)
 More options Feb 8, 3:26 am
Newsgroups: de.comp.os.unix.linux.misc
From: Marcel Müller <news.5.ma...@spamgourmet.com>
Date: Wed, 08 Feb 2012 09:26:38 +0100
Local: Wed, Feb 8 2012 3:26 am
Subject: Re: Garbage Collection ohne neu zu compilieren
Hallo,

On 07.02.2012 23:34, Roman Racine wrote:

> Ich habe hier Binaries einer Closed Source Software. Diese hat ein Memory
> Leak, das unter gewissen Anwendungsmustern, die in letzter Zeit gehäuft
> vorkommen, extrem störend ist, d.h. ständige Neustarts notwendig macht.

> Ich habe mir gedacht, dass dieses Problem behoben werden könnte, wenn
> Aufrufe für malloc() u.ä. von der glibc in eine Library umgebogen würde, die
> Garbage Collection macht. Dadurch hätte man diese Funktionalität, ohne dass
> die Software neu compiliert werden müsste (was im Moment nicht möglich ist,
> da der Source Code nicht verfügbar ist).

das kannst Du guten Gewissens vergessen.

Zwar ist es technisch möglich, die malloc/calloc/realloc/free-Aufrufe
umzuleiten falls, und nur falls die Anwendung durchgängig eine
DLL-Version der C-Runtime verwendet. Die Vorgehensweise ist im Prinzip
per DLL-Rename alle Referenzen der Anwendung auf die Runtime-DLL auf
eine eigene DLL umzubiegen. Das kann man binär im Executable patchen.
Die eigene DLL leitet dann alle Runtime-Aufrufe auf die Original-DLL um
und ersetzt nur einige Aufrufe. Wenn man es richtig macht, hält sich der
Overhead bis hier hin in Grenzen, denn bis auf die ersetzten Aufrufe
kann man die Umleitung statisch vom Executable-Loader durchführen
lassen, so dass zur Laufzeit wie bisher die Original-Runtime
angesprungen wird. Aber ...

> Ein ähnliches Vorgehen hat valgrind zur detektierung von Memory Leaks,
> technisch möglich müsste es also sein, allerdings habe ich nichts
> dergleichen gefunden. Der Boehm Garbage Collector erfordert anscheinend,
> dass die Software neu compiliert wird.

... der Knackpunkt ist, dass die ersetzten Runtime-Funktionen keine
Möglichkeit haben, herauszufinden, welche Speicherblöcke tatsächlich
noch benötigt werden. Dazu müsste man das Programm komplett auseinander
nehmen. Das ist letztlich auch der Ansatz von valgrind, allerdings
funktioniert er nicht fehlerfrei. Und außerdem ist das Programm damit
nicht mehr produktiv nutzbar.

Programmfehler bleiben Programmfehler. Wenn die Anwendung leckt, hat man
eigentlich nur wenige Möglichkeiten.
- Man kann solange mehr Speicher einbauen, bis es nicht mehr so sehr stört.
- Man kann die Anwendung regelmäßig (automatisch) neu starten.
- Wenn die Leckage-Blöcke größer als die System-Page-Size (typ. 4k)
sind, kann man einfach großen Swap-Space bereitstellen, und dem
Betriebssystem den Rest überlassen. Das führt allerdings zu einer
Fragmentierung der Memory-Descriptoren und mithin zu mehr oder minder
deutlichen Performance-Verlusten.

Marcel


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Edzard Egberts  
View profile   Translate to Translated (View Original)
 More options Feb 8, 3:41 am
Newsgroups: de.comp.os.unix.linux.misc
From: Edzard Egberts <ed...@tantec.de>
Date: Wed, 08 Feb 2012 09:41:12 +0100
Local: Wed, Feb 8 2012 3:41 am
Subject: Re: Garbage Collection ohne neu zu compilieren
Roman Racine schrieb:

> Ich habe hier Binaries einer Closed Source Software. Diese hat ein Memory
> Leak, das unter gewissen Anwendungsmustern, die in letzter Zeit gehäuft
> vorkommen, extrem störend ist, d.h. ständige Neustarts notwendig macht.

> Ich habe mir gedacht, dass dieses Problem behoben werden könnte

*Hüstel* - also wenn die Software von mir ist, habe ich das vorgestern
behoben! :o)

Ansonsten solltest Du Dich wirklich an den Hersteller der Software wenden...


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Florian Weimer  
View profile   Translate to Translated (View Original)
 More options Feb 8, 4:43 am
Newsgroups: de.comp.os.unix.linux.misc
From: Florian Weimer <f...@deneb.enyo.de>
Date: Wed, 08 Feb 2012 10:43:58 +0100
Local: Wed, Feb 8 2012 4:43 am
Subject: Re: Garbage Collection ohne neu zu compilieren
* Roman Racine:

> Der Boehm Garbage Collector erfordert anscheinend, dass die Software
> neu compiliert wird.

Es gab zumindest früher einen Modus, der malloc umschrieb.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jan Kandziora  
View profile   Translate to Translated (View Original)
 More options Feb 8, 6:18 am
Newsgroups: de.comp.os.unix.linux.misc
Followup-To: de.comp.os.unix.linux.misc
From: Jan Kandziora <j...@gmx.de>
Date: Wed, 08 Feb 2012 12:18:01 +0100
Local: Wed, Feb 8 2012 6:18 am
Subject: Re: Garbage Collection ohne neu zu compilieren
Roman Racine wrote:

> Ein ähnliches Vorgehen hat valgrind zur detektierung von Memory Leaks,

Valgrind beobachtet den Stackpointer sowie parallel malloc()/free() sowie
einige andere Aufrufe. Durch diese Beobachtung kann es kurzlebige von
langlebigen Objekten unterscheiden.

Häufig wird behauptet, Valgrind fände "Memory Leaks". Das ist so nicht
richtig, vielmehr wirft Valgrind alle Objekte raus, die bewiesen kurzlebig
sind und daher kein Speicherleck darstellen.

Welche der langlebigen Objekte Speicherlecks sind und welche gültige Daten
enthalten muss ein verständiger Mensch entscheiden.

Mit freundlichem Gruß

        Jan


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Roman Racine  
View profile   Translate to Translated (View Original)
 More options Feb 8, 1:00 pm
Newsgroups: de.comp.os.unix.linux.misc
From: Roman Racine <roman.rac...@gmx.de>
Date: Wed, 08 Feb 2012 19:00:16 +0100
Local: Wed, Feb 8 2012 1:00 pm
Subject: Re: Garbage Collection ohne neu zu compilieren

Florian Weimer wrote:
> * Roman Racine:

>> Der Boehm Garbage Collector erfordert anscheinend, dass die Software
>> neu compiliert wird.

> Es gab zumindest früher einen Modus, der malloc umschrieb.

Danke für den Hinweis. Unter "Simple Example" auf Hans Boehms Webseite steht
tatsächlich etwas darüber, dort habe ich bisher nicht gesucht.

Mein Lösungsversuch sieht nun wie folgt aus:

- http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.1.tar.gz
heruntergeladen und entpackt
- configure --prefix=~/gc --enable-redirect-malloc
- make
- make install
- export LD_PRELOAD=~/gc/lib/libgc.so
- Programm ausführen

Problem: Das Programm verwendet Threads und da fällt dieser Lösungsweg aufs
Maul, auch mit der aktuellsten Entwicklungsversion. Für single-threaded
Software würde das aber funktionieren.

Gruss

Roman°


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Marc Haber  
View profile   Translate to Translated (View Original)
 More options Feb 11, 9:30 am
Newsgroups: de.comp.os.unix.linux.misc
From: Marc Haber <mh+usenetspam1...@zugschl.us>
Date: Sat, 11 Feb 2012 15:30:54 +0100
Local: Sat, Feb 11 2012 9:30 am
Subject: Re: Garbage Collection ohne neu zu compilieren

Heiko Schlenker <hsch...@gmx.de> wrote:
>* Sven Hartge <sh-...@svenhartge.de> schrieb:
>> Heiko Schlenker <hsch...@gmx.de> wrote:
>>> * Roman Racine <roman.rac...@gmx.de> schrieb:
>>>> Hat jemand hier Vorschläge?

>>> LD_PRELOAD

>> Ich glaube, das kenne Roman. Er sucht nur etwas, _das_ er preloaden
>> kann, welches das malloc(), was ihm Probleme macht, ersetzt bzw.
>> ergänzt.

>Ach so. Dann wäre wohl die Newsgroup de.comp.os.unix.programming
>thematisch besser geeignet.

Warum? Vielleicht sucht er ja nach einer fertigen Library.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber         |   " Questions are the         | Mailadresse im Header
Mannheim, Germany  |     Beginning of Wisdom "     | http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »