AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlertoleranz DELPHI Compiler

Ein Thema von bernhard_LA · begonnen am 27. Nov 2012 · letzter Beitrag vom 28. Nov 2012
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#31

AW: Fehlertoleranz DELPHI Compiler

  Alt 28. Nov 2012, 13:31
Das Problem schient so wichtig zu sein, dass man es hier paralell in mehreren Threads diskutiert!
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.017 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#32

AW: Fehlertoleranz DELPHI Compiler

  Alt 28. Nov 2012, 13:48
Das Problem schient so wichtig zu sein, dass man es hier paralell in mehreren Threads diskutiert!
Welches sind die anderen Threads zu diesem Thema?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.080 Beiträge
 
Delphi 12 Athens
 
#33

AW: Fehlertoleranz DELPHI Compiler

  Alt 28. Nov 2012, 13:48
Welches sind die anderen Threads zu diesem Thema?
Den hatte ich hier vorhin sogar extra verlinkt.

[add] Post #22
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.017 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#34

AW: Fehlertoleranz DELPHI Compiler

  Alt 28. Nov 2012, 13:56
Welches sind die anderen Threads zu diesem Thema?
Den hatte ich hier vorhin sogar extra verlinkt.

[add] Post #22
Ach das Thema meint er - ja, sind durchaus themenverwandt aber vom OP aus verschieden.

P.S. Wobei das Problem bei ARC nicht aufgetreten wäre
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#35

AW: Fehlertoleranz DELPHI Compiler

  Alt 28. Nov 2012, 14:00
Das mit der GC Problematik meinte ich. Aber meine Meinung ist ja nicht relevant.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#36

AW: Fehlertoleranz DELPHI Compiler

  Alt 28. Nov 2012, 15:20
Ist sie nicht. Stell Dir mal vor Du hast ein Objekt, das eine Bestellung von 100 Tonnen
nassem Beton repräsentiert - der in deinen Vorgarten gekippt werden soll.

Jetzt willst Du dieses Objekt löschen - und alle Zugriffe auf das Objekt sollen
zu Fehlern führen. Mit GC ist das ein Krampf - man muss da quasi händisch das Rad der
Access Violation neu erfinden.
Diese Denkweise ist so falsch, dass ich gar nicht weiß, wo ich anfangen soll. Warum um alles in der Welt würde man die Speicherverwaltung für Geschäftslogik missbrauchen?! Es ist doch in keinem realen Softwaresystem so, dass, um beim Beispiel zu bleiben, eine abgebrochene Bestellung tatsächlich aus dem System gelöscht würde. Nein, natürlich wird die als abgebrochen markiert und verbleibt im System. Und will man dann doch einen Datensatz tatsächlich löschen, hat das ja wiederum absolut nichts mit Garbage Collection zu tun. Das sind doch hier Abstraktionsebenen, die du vermischt, die absolut nichts miteinander zu tun haben!

Mir scheint hier irgendwie teilweise das Bild vorzuherrschen, Garbage Collectors wären dazu da, schlechten Programmierstil zu kaschieren oder ähnliches und mit genügend "Skill" hätte man soetwas nicht nötig. Das ist, gelinde gesagt, völliger Schwachsinn.
Leo S.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.017 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#37

AW: Fehlertoleranz DELPHI Compiler

  Alt 28. Nov 2012, 15:45
Mir scheint hier irgendwie teilweise das Bild vorzuherrschen, Garbage Collectors wären dazu da, schlechten Programmierstil zu kaschieren oder ähnliches und mit genügend "Skill" hätte man soetwas nicht nötig. Das ist, gelinde gesagt, völliger Schwachsinn.
Das sicherlich nicht, aber mit einem GC brauch ich mir keine Sorge machen, dass ein Objekt a) nach Benutzung nicht freigegeben wird oder dass es b) vorzeitig freigegeben wird. Ich habe dort kein verantwortliches "Besitzer" Objekt, welches sich darum kümmert oder diese Verantwortlichkeit weitergibt. Das wiederum habe ich aber in Delphi und es ist nicht immer einfach, das zu überblicken und verwalten. Jeder, der schonmal mit Listen gearbeitet hat, von denen eine OwnsObjects True hat und dann Objekte von einer Liste in eine andere schiebt oder kopiert, wird wissen, dass es in einen Albtraum ausarten kann, sich durch EAccessViolation und/oder EInvalidPointer Exceptions zu kämpfen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#38

AW: Fehlertoleranz DELPHI Compiler

  Alt 28. Nov 2012, 15:55
Vielleicht können wir uns darauf einigen, dass es um vergessene Referenzen auf aufgelöste Objekt(speicherplätz)e geht.
Solche Zugriffe sollten sowohl von der BL als auch von der GUI vermieden werden.

Dennoch kann es vorkommen, insbesondere bei der Entwicklung eines komplexen Projektes. Man braucht ja nur den Owner aufzulösen und vergisst, dass das Objekt diesem zugeordnet ist.

Schön wäre es, wenn alle Referenzen auf ein Objekt bei dessen Auflösung automatisch genilt würden, aber das wird auch in Zukunft nicht realisierbar sein. Mit Assign(Referenz) könnte man immer auf die Existenz des Objektes prüfen.

Die Objektreferenz noch am Leben zu erhalten und damit auf fragwürdige Daten zuzugreifen finde ich eigentlich nicht optimal. Es hat eben Vor- und Nachteile. Sofern man mit den Daten nix weiter anstellt, ist das für das Projekt nicht weiter schädlich. Wenn die Existenz des Objektes aber mein übriges Projekt beeinflusst, dann ist das natürlich schlecht.

Also sollte man ein Objekt vor dem Auflösen "disablen", so können vergessene Referenzen erkennen, dass das Objekt, auf welches sie zeigen eigentlich nicht mehr da ist.

Ein prakisches Beispiel ist Windows: Führt man in einem Control ein Schließen seines ParentForms durch, erhält dieses Control evtl. zuvor noch den Focus. Winndows will das Control kurz darauf schön focussiert zeichnen.
Form und Control sind nicht mehr da - es knallt. (Das hängt wohl tatsächlich mit den Handels zusammen, ist aber ein anschauliches Beispiel.)
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Patito

Registriert seit: 8. Sep 2006
108 Beiträge
 
#39

AW: Fehlertoleranz DELPHI Compiler

  Alt 28. Nov 2012, 16:08
Ist sie nicht. Stell Dir mal vor Du hast ein Objekt, das eine Bestellung von 100 Tonnen
nassem Beton repräsentiert - der in deinen Vorgarten gekippt werden soll.

Jetzt willst Du dieses Objekt löschen - und alle Zugriffe auf das Objekt sollen
zu Fehlern führen. Mit GC ist das ein Krampf - man muss da quasi händisch das Rad der
Access Violation neu erfinden.
Diese Denkweise ist so falsch, dass ich gar nicht weiß, wo ich anfangen soll.
Erst heißt es ein GC löst magisch alle Zugriffsprobleme auf ungültige Objekte.
Dann gibt es auf einmal in Programmen überhaupt keine Notwendigkeit mehr auf
Zugriffe auf ungültige Objekte überhaupt zu testen "wegen der Geschäftslogik
in realen Softwaresystem".

Als nächstes kommt ihr noch auf die Idee und schreibt für C# einen Meta-GC, der verhindert, dass dort
Weak-References jemals auf ungültige Targets verweisen können...

Comedy vom feinsten...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.080 Beiträge
 
Delphi 12 Athens
 
#40

AW: Fehlertoleranz DELPHI Compiler

  Alt 28. Nov 2012, 16:10
Ab TComponent könnte man aber schon seit Jahrzehnten Listen erstellen (hat nur noch keiner gemacht), wo die Referenzen automatisch entfernt werden, wenn jemand Anderes (z.B. der Owner) das Objekt freigibt.

Also ab TComponent ist dieses Feature drin, wenn man es nicht selber implementieren will. Dieses wird z.B. für die ganzen (Kreuz)Verlinkungen ala Parent-Child und Owner-Owned verwendet.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz