Re: Nette Features in C# 3.0



Rainer Weikusat wrote:

> Sebastian Biallas <groups.5.sepp@xxxxxxxxxxxxxxx> writes:
>
>>Rainer Weikusat wrote:
>
> [...]
>
>>>>Was kostet, ist lediglich der einmalige Setup eines Exception
>>>>-Handlers sowie das Fangen der Exception. Am Code der die Exception
>>>>auslöst muss garnichts verändert werden.
>>>
>>>Das ist 'mal wieder' das lustige Konzept, dass Code, der in
>>>irgendeinem anderen file steht, weniger "da" waere. Kauen wir das doch
>>>fuer UNIX und aehnliches mal durch:
>>> [1..9]
>>
>>Meine CPU muss das 1000 Mal pro Sekunde zwecks (möglichem) Taskwechsel
>>tun. Normale Interrupts sind da noch nicht mit eingerechnet.
>
[..]
>
> Wenn das eine Anspielung auf 'HZ=1000' sein soll: Das ist ein
> normaler Interrupt

Das ist eine FPE auch.

> und es wird nicht bei jedem auf 'moeglicher
> task-Wechsel' geprueft. Ich habe jetzt im Moment gerade keine Lust,
> dass breiter auszuwalzen, aber so allgemein, wie Du das geschrieben
> hast, stimmt es nicht.

Die CPU muss aber 1000/s Mal in Ring 0 schalten, Register sichern und
wiederherstellen, der Kernel muss schauen, was überhaupt passiert ist
usw.usf.

>>>Auf einer ausreichend schnellen CPU geht dieser Vorgang, nicht zuletzt
>>>deswegen, weil er von profilern schlecht erfasst werden kann,
>>>hoechstwahrscheinlich im 'allgemeinen Hintergrundrauschen' der anderen
>>>800.000 Operationen, die der Code durchfuehrt, deren einzige
>>>festellbare Eigenschaft die ist, dass sie das Endresultat nicht
>>>negativ beeinflussen, unter. Da ist er trotzdem.
>>
>>Er ist nur da, wenn wirklich eine Exception auftritt.
>
> Ja. Deswegen ist der overhead dafuer aber immer noch heftig genug, um
> diese 'Ausnahme' eben auch nur 'in Ausnahmen-Situationen' haben zu
> wollen.

Vielleicht gehöre ich ja zu der aussterbenden Spezies, die Ausnahmen
wirklich nur in Ausnahme-Situationen haben mochte (wenn ein definierter
Under-/Overflow Teil eines Algorithmus ist, wäre es in der Tat reichlich
dämlich, wenn einem da so Exceptions dazwischenfunken. Wenn ein
Under-/Overflow das Ergebnis vollkommen zerstört, dann ist mir eine
automatische Exception sehr viel lieber als das langsamere (und
möglicherweise fehleranfällige) händische Prüfen aller Zwischenergebnisse).

Manch anderer aber schreibt halt sowas (entnommen von
http://thedailywtf.com/forums/43288/ShowPost.aspx):

try
{
int idx = 0;
while (true)
{
displayProductInfo(prodnums[idx]);
idx++;
}
}
catch (IndexOutOfBoundException ex)
{
// nil
}

Gruß,
Sebastian
.



Relevant Pages

  • Re: instabile VMS-Installation
    ... CPU 0 Crash Code 1CC,Crash Type = INVEXCEPTN ... EXCEPTION 83407A00 0000A800 ... Exception par #1: 0000000C ...
    (de.comp.os.vms)
  • Re: Machine Check Error.
    ... Machine Check Architecture exception. ... exception is sent by the CPU in the computer in response to a computer ... the CPU reports the Machine Check Architecture ...
    (microsoft.public.windows.server.general)
  • Re: Kein PaintWithErrorHandling
    ... Anschließend wird die Ausnahme _unverändert weitergeworfen_. ... Exception in OnPaint geworfen => Run => IDE bleibt im Source-Code bei application.run stehen bzw. im Callstack etwas genauer bei Paintwitherrorhandling. ... dann ins Lokalfenter und dort die lokale Variable $exception untersuchen. ... Dialogfeld zu reduzieren. ...
    (microsoft.public.de.german.entwickler.dotnet.framework)
  • Re: New CPU or Boat Anchor
    ... > I installed an FC4 desktop system on a 500 mh hp pavillion without much ... After the updates were done and I started tweaking some ... > or to replace the CPU etc I would appreciate your help. ... from suspend which would manifest itself as a Machine check exception. ...
    (Fedora)
  • Re: Exception oder bool=true, false ???
    ... > eine eitere Exception zu feuern. ... > einen bool Wert zurück, sondern einen Wert einer Enum, so kann ich ... > Funktion den Fehler besser/anders behandeln lassen. ... Denn entweder erwartest du die "Ausnahme" geradezu (Bsp. ...
    (microsoft.public.de.german.entwickler.dotnet.csharp)