Code den die Welt nicht braucht ... ????
C# Allgemein
Es gibt ja immer wieder Situationen, in welchen Programmierer sich mit "IT-Architekten" ueber Implementierungsregeln usw. unterhalten muessen....
Manchmal sieht man dann im Code :
finally {}
Spricht man die Architekten darauf an, so heißt es: "Ist Vorgabe, und der Compiler optimiert dies!"
Kategorie Es gibt ja immer wieder Situationen, in welchen Programmierer sich mit "IT-Architekten" ueber Implementierungsregeln usw. unterhalten muessen....
Manchmal sieht man dann im Code :
finally {}
Spricht man die Architekten darauf an, so heißt es: "Ist Vorgabe, und der Compiler optimiert dies!"
Würden wir in C++ oder C implementieren, würde ich diesem Argument zustimmen, da dort die Compilerbauer sher viel Zeit in Optimierungen reinstecken konnten (schon alleine durch das Alter der Sprache ).
Wie sieht es aber in C# aus?
Habe mal folgende Klasse gebaut:
namespace Tests {
public class EmptyTry {
public void methodEmpty() {
}
public void methodEmptyTryCatch() {
try {} catch {}
}
public void methodEmptyTryCatchFinally() {
try {} catch {} finally {}
}
public void methodEmptyTryFinally() {
try {} finally {}
}
}
}
Sollten die IT-Architeken recht haben, dann sollte bei den Aufrufen der Methoden kein Unterschied zu erkennen sein, oder?
Also Schleifchen bauen, so und die Methoden 100000000 aufrufen... der Compiler wird ja nicht viel Code erzeugen, oder?
methodEmpty 875
methodEmptyTryCatch 984,375
methodEmptyTryCatchFinally 1328,125
methodEmptyTryFinally 1296,875
(alles in Millisekunden)
OK, ich gebe ja zu dies ist die Spitze des Eisberges und von der Performance evtl. nicht entscheidend, außer es werden ein paar Tausend Datensätze eingefügt
Es gibt dann ja noch die Möglichkeit ein Singelton etwas unpräzisse zu implementieren ->
get
{
try
{
if (_instance == null) _instance = new Monitoring();
return _instance;
}
catch( Exception )
{
return _instance;
}
}
Ich meine, der Code ist schon der Hit , weil wenn hier was schief geht, dann gibt es beim Aufrufenden wohl eine NULL-Pointer-Exception
Wie heißt es so schön, der Fisch fängt am Kopf an zu stinken..?
Bei solchen Vorgaben, sollte man sich dann nicht wundern, wenn am Ende "schlechter Code" implementiert wird
Gruß JJR