Manuelle Speicherfreigaben bei Programmende
-
pale dog schrieb:
Konrad Rudolph schrieb:
Und andere unverwaltete Ressourcen, also z.B. Grafik-Handles etc. müsste man auch weiterhin selbst freigeben, weil dies das Betriebssystem eben nicht unbedingt übernimmt.
doch, macht es.
das OS meldet sogar netzwerkverbindungen bei der gegenstelle ab, wenn dein programm abraucht....Oho, das würde ich aber nicht so allgemein sagen. Auf unseren AIX-Maschinen mussten wir extra (für die MQ-Verbindung) einen (undokumentierten) keepalive-Parameter setzen - ansonsten schlug ein Standard Timeout von 2 Stunden zu, bevor das kommunzierende System etwas merkte.
Auch die Standard-TCP-Verbindungen hatten untragbare Timeouts (die aber teilweise von anderer Infrastruktur auf der Maschine gefordert wurden) ...Es bleibt dabei: Alle anderen Maßnahmen bedürfen mehr Aufwand an Prüfung, Umsetzung, Testen als ein delete-Statement...
Gruß,
Simon2.
-
Simon2 schrieb:
Oho, das würde ich aber nicht so allgemein sagen. Auf unseren AIX-Maschinen mussten wir extra (für die MQ-Verbindung) einen (undokumentierten) keepalive-Parameter setzen - ansonsten schlug ein Standard Timeout von 2 Stunden zu, bevor das kommunzierende System etwas merkte.
und was sagt uns das? AIX taugt nix!
wieso benutzt ihr undokumentierte parameter? das ist ja erst richtig schlechter stil
btw: ein popeliges windows bekommt es doch auch hin, ein RST zu schicken, wenn das programm abgestürzt ist.
-
pale dog schrieb:
...
wieso benutzt ihr undokumentierte parameter? ...Ganz einfach: Empfehlung vom Hersteller.
Übrigens war es ein Parameter der MQSeries-Software und nicht vom AIX, der da gesetzt werden musste und AIX haben wir nunmal von unserer Firma als Standard aufgedrückt bekommen ... da hilft auch kein Lamentieren (zumal Windowsserver definitiv nicht das geboten hätten, was wir mit den AIX-Servern machen).Ist aber letztlich auch vollkommen egal, weil immer noch nicht klar ist, warum man sich hier von Möglichkeiten/Schwächen/Eigenarten des Betriebssystems abhängig machen sollte, wenn es eine definierte, sichere und unaufwändige Standardtechnik gibt ?
Bislang wurden hier ein Haufen Nachteile und nicht ein Vorteil davon genannt.
Wir können noch 100 weitere Threadseiten mit der Diskussion verbringen, für welche Nachteile es evtl. bei diesem oder jenem OS eine "Umschiffung" gäbe, aber ohne "Aufstockung der Pro-Seite" wird das Fazit dasselbe bleiben...Gruß,
Simon2.
-
Simon2 schrieb:
Ist aber letztlich auch vollkommen egal, weil immer noch nicht klar ist, warum man sich hier von Möglichkeiten/Schwächen/Eigenarten des Betriebssystems abhängig machen sollte, wenn es eine definierte, sichere und unaufwändige Standardtechnik gibt ?
na, ganz einfach: warum dinge doppelt erledigen (stichwort 'abrissbirne')?
aber teilweise gebe ich dir recht: irgendwie muss man sich immer darauf verlassen, dass das eine oder andere funktioniert. redundanz bring auch mehr sicherheit.

-
pale dog schrieb:
...
na, ganz einfach: warum dinge doppelt erledigen (stichwort 'abrissbirne')?...Weil man sich offensichtlich nicht darauf verlassen kann, dass es wirklich jemand an meiner Stelle erledigt (bzw. dass die 'Abrissbirne' exakt den gewünschten Effekt hat wieder 'Staubsauger'
) !
Und "Doppelt gemoppelt" wäre es sowieso nicht, weil das Betriebssystem ja keine bereits abgebauten Ressourcen erneute abbauen würde - das schlägt ja sowieso erst zu, wenn meinem Programm die Kontrolle entglitten ist ...Gruß,
Simon2.