[linux-l] Re: Ruby: sehr cool, aber laaaahm... wie geht's schneller?! - D?

David Hansen david.hansen at physik.fu-berlin.de
So Aug 27 18:41:00 CEST 2006


On Sun, 27 Aug 2006 18:22:17 +0200 Oliver Bandel wrote:

> On Sun, Aug 27, 2006 at 02:55:06PM +0200, David Hansen wrote:
>> On Sun, 27 Aug 2006 14:40:33 +0200 Oliver Bandel wrote:
>> 
>> > On Sun, Aug 27, 2006 at 02:22:01PM +0200, David Hansen wrote:
>> >> Sowas macht schon Sinn wenn man den Verdacht hat, dass man
>> >> irgendwo noch Referenzen herumfliegen hat, die man
>> >> eigentlich nicht haben will.  Aber viel mehr als
>> >> feststellen, dass man ein mem leak hat kann man wohl nicht.
>> >
>> > Unter memLeak verstehe ich aber das, was man in C auch so nennt.
>> >
>> > Bei einer Sprache mit GC dürfte doch sows garnicht auftauchen,
>> > denn da werden die Ressourcen ja vom System verwaltet.
>> >
>> > Also kann es da allenfalls Speicherhungrige Coideteile geben;
>> > das sind dann aber keine leaks im klassischen C-Sinne (malloc()).
>> >
>> 
>> Nein, du kannst einfach irgendwo eine Referenz auf ein
>> Object "vergessen" haben.  In der Praxis ist das dann das
>> selbe wie ein vergessenes free ().  Ob du es nun anders
>> nennen willst oder nicht...
> [...]
>
> Wie soll man das denn vergessen haben?
>
> Wenn die Variablen immer nur lokal sind,
> kann man da nix vergessen.

In größeren Projekten wo diverse "Container" (Hash Tables,
Listen oder was auch immer) durch die Gegend fliegen, würde
ich nicht dafür garantieren wollen, dass alles, was da noch
referenziert wird, auch wirklich noch gebraucht wird.

Erst recht nicht wenn nur ein Bruchteil des Codes von mir
kommt.

Und ohne "globale" Variablen kommt man nicht wirklich aus.
Ob die nun streng genommen global sind oder man das über
closures oder Referenzen auf sonstwas simuliert spielt dann
keine Rolle.

Auch in Ocaml wirst du sowas haben.

David




Mehr Informationen über die Mailingliste linux-l