La respuesta es sí y no. Realmente depende de a qué característica específica te estás refiriendo. Del mismo modo, hay áreas donde VB se ejecuta más rápido. Puedo dar un ejemplo de cada uno.
Este código en VB ...
For i As Integer = 0 To Convert.ToInt32(Math.Pow(10, 8))
Next
... se trata de 100x más rápido que el código en C#.
for (int i = 0; i <= Convert.ToInt32(Math.Pow(10, 8)); i++)
{
}
No es que el compilador de VB es mejor en la generación de código que se ejecuta for
bucles más rápido sin embargo. Es que VB calcula el lazo enlazado una vez mientras que C# calcula la condición del ciclo en cada iteración. Es solo una diferencia fundamental en la forma en que se pretendía utilizar los idiomas.
Este código es C# ...
int value = 0;
for (int i = 0; i <= NUM_ITERATIONS; i++)
{
value += 1;
}
... es ligeramente más rápido que el equivalente en VB.
Dim value As Integer = 0
For i As Integer = 0 To NUM_ITERATIONS
value += 1
Next
La razón por la que en este caso es que el comportamiento por defecto para VB es llevar a cabo la comprobación de desbordamiento mientras que C# no lo hace.
Estoy seguro de que hay otras diferencias en los idiomas que muestran sesgos de rendimiento similares. Sin embargo, ambos lenguajes se crean sobre el CLR y ambos compilan a la misma IL. Entonces, hacer afirmaciones generales como "Idioma X es más rápido que el lenguaje Y" sin agregar la importante cláusula "en situación Z" que califica son simplemente incorrectas.
Más instrucciones no significan necesariamente un programa más lento. – ChaosPandion
¿Está * seguro * la lógica es idéntica? Si son lo suficientemente pequeños, ¿puedes publicar ambos ejemplos? –
posible duplicado de [¿El código C# es más rápido que el código Visual Basic.NET?] (Http://stackoverflow.com/questions/1223660/is-c-code-faster-than-visual-basic-net-code) –