domingo, 31 de julio de 2011

.NET vs C++

Concretamente se trata de Visual Basic.Net contra código c++ compilado por gcc (el compilador de GNU).

Para hacer esta simplísima prueba de rendimiento, escribí 4 bucles "for" anidados, los cuales recorren 256 items cada uno.

La idea básica sería generar números con el formato de una IP o sea:

0.0.0.0
0.0.0.1
...
0.0.1.0
0.0.1.1

y así sucesivamente hasta llegar a 255.255.255.255.

Empiezo con C++:
Fue compilado bajo Linux y utilizando GCC, mediante NetBeans 7.0 (utilizando la terminal, se obtiene el mismo resultado).

#include

using namespace std;

int main(){
for (int i = 0; i < 255; i++){
for (int i = 0; i < 255; i++){
for (int i = 0; i < 255; i++){
for (int i = 0; i < 255; i++){

}
}
}
}
cout << "Terminé";
return 0;
}

En mi humilde pc, este código tarda 13 segundos aproximadamente.

¿Cuánto tardará en Vb.net? - Compilado bajo Windows 7, utilizando Visual Studio 2008 Express.

Module Module1

Sub Main()
For i = 0 To 255
For j = 0 To 255
For k = 0 To 255
For l = 0 To 255

Next
Next
Next
Next
Console.WriteLine("Terminé")
Console.ReadLine()
End Sub

End Module

En este caso, el código tarda unos 16 segundos en ejecutarse, lo que nos da una idea del potencial de .Net.

Conclusión:
C++, me encanta y podría usarlo para muchos algoritmos, a su vez .Net tiene una velocidad de ejecución muy aceptable, además de que es sencillo programar bajo esta plataforma.

Para hablar un poco sobre "portabilidad", puedo decir que MONO esta en una linda etapa de desarrollo, y puede ejecutar código .Net con gran fluidez, claro que no tanto como en Windows.

De yapa quisiera hablar de python, el cual queda a años luz de estos tiempos... aunque su versatilidad asombra.

Saludos!