Diskussion:Speicherleck
Im Gegensatz zum Vorgängerartikel habe ich nun versucht, eine umfassende Begründung für die Memory-Leak-Problematik zu geben. Mathias 20:09, 20. Aug 2005 (CEST)
Vergleich von Memory-Debugging Tools erwünscht?
Ich würde mir wünschen, dass inm Abschnitt "Abhilfe" mehr erwähnt wird. Zum einen eine größere Auflistung von Tools. Zum anderen aber auch eine vergleichende Beschreibung der Tools. Ich könnte auch anfangen, da etwas zu schreiben, aber ich wollte erstmal fragen, ob das als "unüblich" gilt. Vorteil davon: Praktischere, umfasssendere Informationen.
Oft findet man bestenfalls nur geringfügig kommentierte Auflistingungen. Vorteile davon: Weniger Meinungsstreitereien, Wikipedia ist keine Computerzeitung. --Weidenrinde 08:50, 1. Nov 2005 (CET)
Perl weist durchaus Speicherlecks auf.
- Perlprogramme können während der Ausführung durchaus Speicherlecks produzieren, das stimmt. Das Problem ist, dass eine automatische Speicherverwaltung schon theoretisch nicht in der Lage ist alle Eventualitäten zu berücksichtigen. Ich habe den Artikel daher etwas umformuliert und ergänzt. Mathias 19:20, 8. Jun 2006 (CEST)
Zum Edit-War
Zugegeben, der Artikel ist sprachlich nicht ausgereift. Allerdings ist es nicht wirklich zielführend, schlechte Formulierungen durch falsche (und sprachlich schlechte) Phrasen zu ersetzen.
"Wenn das Halteproblem lösbar ist...", dann wäre alles ganz toll. Aber es ist nicht lösbar (das ist keine Annahme, sondern bewiesen!). Auch andere Formulierungen wie "Speicher kann nicht oder nicht mehr benutzt werden" sind sprachliche Katastrophen! Ich überarbeite den Artikel noch einmal. -- Mathias bla? 15:14, 10. Sep 2006 (CEST)
- Dass das Halteproblem nicht lösbar ist, ist keineswegs zutreffend, denn: Es ist semi-entscheidbar. Da wir im Artikel von einer konkreten Instanz des Halteproblems geschrieben haben, ist also meine Formulierung zutreffend. Es wäre vielleicht die Formulierung "immer dann wenn die konkrete Instanz des Halteproblems gelöst werden kann" besser.
- Im übrigen vermag ich an der Formulierung "nicht oder nicht mehr" nichts schlechtes zu finden... Das wird auch von US Juristen so verwendet (etwa: "at or about at"; ich hatte da mal die Ehre einen solchen Schriftsatz zur Klageerhebung zu lesen)... Natürlich darfst Du auch aus dieser eleganten Konstruktion zwei riesen Satzteile bauen!
- Zwei gleich benannte Überschriften sind natürlich völlig daneben! Besonders vom Sprachlichen her...
- Meine Strukturierung in Problematik/Lösungsansätze war hervorragen - besonders im Vergleich zum jetztigen Zustand
- Desweiteren ist das Abschweifen vom Thema auch keine gute sprachliche Eigenschaft (1. Kann man viel kürzer klarmachen, dass Speicher gebraucht wird; 2. was soll da die Rangfolge (zweitwichtigste)?).
- "Die Sicht des Programmierers"!? Du meine Güte... Kindergarten? Außerdem könnte es genauso heißen: Die Sicht des Software Designers/Architekten oder Informatikers oder was weiß ich...
- Was is mit meinem Verweis auf boehm-gc geworden? Ist boehm-gc schlecht (aus der Sicht des Programmierers)? Oder was?
- Wieso soll man zweimal schreiben, dass mit dem Ende des Programms auch das Speicherleck ein Ende hat? Damit der Leser nach dem ganzen sprachlichen Terror beruhigt ist?
- Ockhams Rasiermesser
- Daher: Revert!
- --213.54.83.34 17:13, 10. Sep 2006 (CEST)
- "Im übrigen kann auch die einfache dauernde Beobachtung des Speicher-Anspruchs eines Programmes unter Berücksichtigung der gerade gegenwärtigen Arbeitsbelastung bei hinreichendem Wissen über die Natur des Programmes Aufschluss über das Vorliegen eines Speicherlecks hinreichenden Ausmaßes geben." - ist das verständlicher Stil?
- "immer dann wenn das semi-entscheidbare Halteproblem in einer konkreten Instanz lösbar ist" - semi-entscheidbarkeit in Bezug auf das Halteproblem bedeutet, dass man herausfinden kann, dass ein Programm anhält, aber man kann nicht herausfinden, dass es nicht anhält. Und genau der letzte Fall ist für die Speicherleck-Problematik wichtig. Man kann nicht sicher beweisen, dass ein Programm ein Speicherleck provoziert. Offenbar beziehst du dich darauf, dass es in konkreten Fällen manchmal doch möglich ist - aber damit hat der Begriff "Instanz" in Bezug auf theoretische Informatik (die ist es ja, wenn man von "Halteproblem" spricht) nichts zu tun. Da meint der Begriff "Instanz", dass es in der Art der Problemstellung ein ähnliches Problem gibt. Es meint nicht einen konkreten Fall.
- "Insoweit nur in begrenztem Maße Arbeitsspeicher zur Verfügung steht (auch virtueller Speicher ist begrenzt und bringt zudem Performance Einbußen mit sich), und insoweit Programme Teile des Arbeitsspeichers zur alleinigen Nutzung erhalten müssen, ist ersichtlich die sparsame Beanspruchung von Arbeitsspeicher wichtig für einen Störungs-armen Betrieb." - Was ist "Performance Einbuße"? Soll wohl verständlich sein - ich weiß nur nicht, für wen. Auch ist es nicht "insoweit" der Fall, dass nur eine begrenzte Menge von Arbeitsspeicher zur Verfügung steht. Es wird immer so sein! Auch wird es "insoweit" kein Programm geben, dass nicht Arbeitsspeicher zur alleinigen Nutzung erhalten muss. Und spätestens bei "Störungs-arm" dreht sich mir sprachlich der Magen um. Die Qualität dieser Version ist syntaktisch und grammatisch schlecht - verständlich macht sie dies sicherlich nicht. -- Mathias bla? 17:34, 10. Sep 2006 (CEST)
- Ich habe Deinen Erguss mal besser formatiert...
- Zu 1.: Ja! Was verstehst Du denn nicht? Auch lange Sätze können verständlich sein. Die einzelnen wesentlichen Aspekte sind in logisch korrekter Reihenfolge aneinandergereiht. Im übrigen kann ich als Dipl.(U)-Inf. sagen, dass ich selbst ebengenauso einem ein Memoryleak entdeckt habe (man könnte nun natürlich noch sagen, dass das Programm, das dort immer weiter anschwoll, diesen zunehmenden Speicherbedarf durch die Bearbeitung von Schach-Aufgaben rechtfertigen konnte, aber auch das würde in meine "nutzen können" Formulierung fallen, weil der eigentliche Zweck dieses Programms ein ganz anderer gewesen ist).
- Zu 2.: Auch zu der Formulierung mit "Instanz des Halteproblems" noch etwas (obwohl es unnötig ist): Natürlich hat auch das Halteproblem Instanzen (auch im Sinne der theoretischen Informatik), die durch eine konkrete Belegung der Variablen gegeben wären (Variablen wären: Programm-Text und Eingabe-Werte, wobei sich letztere sicherlich im Geiste der Korrektheitsbeweise durch Pre-Condition in allgemeiner Form angeben ließen). Das ist übrigens auch die Verwendung in Deinem Sinne, weil schließlich das allgemeine Halteproblem spezialisiert werden kann, indem man ein Programm fest vorgibt und nur die Eingaben in gewissem Maße frei lässt. Bitte etwas konstruktiver! geändert: --213.54.83.34 18:28, 10. Sep 2006 (CEST)
- Zu 3.: "Performance Einbuße" ist ja fast schon allgemein verständlich: Es führt eben zu Verzügerungen und schlimmsten Falles zu sachlich falschen Ergebnissen (eingebüßte Performance eben).
- Noch zu 3.: "Insoweit" bedeutet für mich (als Muttersprachler), dass das nochfolgende eben nur in dem Maße gilt, in dem es auch im konkreten Fall zutrifft (etwa ist auf einer Maschine mit 4GB es herzlich egal, ob da einer meint er müsse zehn Millionen Mal 8 Byte "malloc'en", ohne das Ergebnis jemals irgendwie zu verwenden, besonders wenn sein Programm das einzige ist, das laufen soll; die Menge des zur Verfügung stehen Arbeitsspeicher kann also in konkreten Fällen dermaßen groß sein, dass er keine reale Begrenzung darstellt; er ist also quasi unbegrenzt). Es soll ja gerade die Problematik erläutert werden und dazu muss man eben schon differenziert vorgehen.
- Noch zu 3.: Doch! Es kann sehr wohl zwei Programme geben, die jeweils gegenseitig sowohl ihren Programm-Code als auch ihre Daten und meinetwegen auch Eingaben manipulieren (meinetwegen über Semaphore in geregelten Bahnen (das hat jetzt nichts mit Achterbahn zu tun) -- muss aber nicht sein...). Selbst modifizierender Code kann durchaus Sinn machen... Auch muss man nicht unbedingt von einem UNIX-artigen Betriebssystem ausgehen... Und dennoch kann der Begriff Speicherleck auch dort Sinn machen...
- Noch zu 3.: "Störungs-arm": Ja und? Wenn sich Dir da der Magen umdreht, dann sicherlich nicht wegen dieser Vokabel. Darüber möchte ich mit Dir auch nicht reden, weil mir die Bestallung zum Arzt fehlt.
- Noch zu 3.: Syntaktisch schlecht? Warum? Das heißt wohl Rechtschreibfehler oder wie?
- Noch zu 3.: Grammatisch schlecht? In Deiner letzten Version von 15:25 seh ich einen Grammtik-Fehler gleich im ersten Satz: "der jedoch nicht mehr nutzbar." Da wolltest Du wohl das Prädikat einsparen... Toll!
- Das war jetzt quasi mein Schlusswort in dieser Sache. Irgendwann wird es mir eben einfach zu blöd! Übrigens hast Du Dir nicht die Mühe gemacht, auf meine Kritik an Deiner Version von 15:25 einzugehen, so dass ich im wesentlichen von insgeheimer Zustimmung und ansonsten von gekränkter Eitelkeit ausgehe... Das ist jetzt also als Kapitulation zu werten. Schöne Grüße an Deinen Hausarzt! --213.54.83.34 18:22, 10. Sep 2006 (CEST)
- Ich habe Deinen Erguss mal besser formatiert...