En C#, ¿habría alguna diferencia en el rendimiento al comparar las siguientes TRES alternativas?declarará las variables dentro de los subbloques mejorar el rendimiento?
UNO
void ONE(int x) {
if (x == 10)
{
int y = 20;
int z = 30;
// do other stuff
} else {
// do other stuff
}
}
DOS
void TWO(int x) {
int y;
int z;
if (x == 10)
{
y = 20;
z = 30;
// do other stuff
} else {
// do other stuff
}
}
TRES
void THREE(int x) {
int y = 20;
int z = 30;
if (x == 10)
{
// do other stuff
} else {
// do other stuff
}
}
No.usted se está preocupando por lo que se denomina una "micro-optimización": ¿ha realizado una evaluación comparativa para determinar si realmente tiene un problema de rendimiento? –
@Mitch: no veo en ninguna parte de la publicación de Craig una queja por tener un bajo rendimiento en su código. Tenía una pregunta perfectamente válida e inteligente que hacer, y así lo hizo. Es como si no pudiéramos publicar nada @SO que implique rendimiento. –
Ni siquiera llamaría a esta micro-optimización, sino a nano-optimización. Cualquiera que haya visto el resultado de un generador de perfiles sabe que preocuparse por el tiempo que lleva almacenar una variable o llamar a una función es ridículamente insignificante. –