Estoy haciendo una prueba de esfuerzo rápida en dos (un poco) proyectos de hello world escritos en node.js y asp.net-core. Ambos se ejecutan en modo de producción y sin un registrador conectado a ellos. ¡El resultado es asombroso! El núcleo de ASP.NET está superando a la aplicación node.js incluso después de hacer un trabajo adicional, mientras que la aplicación node.js solo muestra una vista.
Aplicación 1: http://localhost:3000/nodejs
node.js
Usando : node.js, motor de renderizado express y vash.
El código en este punto final es
router.get('/', function(req, res, next) {
var vm = {
title: 'Express',
time: new Date()
}
res.render('index', vm);
});
Como puede ver, no hace nada más que enviar la fecha actual a través de la time
variable a la vista.
Aplicación 2: http://localhost:5000/aspnet-core
asp.net core
Uso : ASP.NET Core, orientación de plantilla predeterminadadnxcore50
Sin embargo, esta aplicación hace algo más que simplemente representar una página con una fecha. Genera 5 párrafos de varios textos aleatorios. En teoría, esto debería hacer que esto sea un poco más pesado que la aplicación nodejs.
Aquí está el método de acción que representa esta página.
[ResponseCache(Location = ResponseCacheLocation.None, NoStore = true)]
[Route("aspnet-core")]
public IActionResult Index()
{
var sb = new StringBuilder(1024);
GenerateParagraphs(5, sb);
ViewData["Message"] = sb.ToString();
return View();
}
Resultado de la prueba de esfuerzo
Resultado de la prueba de esfuerzo de la aplicación Node.js
Actualización: siguiendo la sugerencia de Gorgi Kosev
Utilizando npm install -g recluster-cli && NODE_ENV=production recluster-cli app.js 8
Resultado de la prueba de esfuerzo de la aplicación ASP.NET Core
No puedo creer lo que veo! No puede ser cierto que en esta prueba básica asp.net core sea mucho más rápido que nodejs. Por supuesto, esta no es la única métrica utilizada para medir el rendimiento entre estas dos tecnologías web, pero me pregunto qué estoy haciendo mal en el lado de node.js. .
Siendo un desarrollador profesional de asp.net y deseando adaptar node.js en proyectos personales, esto es algo que me desanima, ya que estoy un poco paranoico sobre el rendimiento. Pensé que node.js es más rápido que asp.net core (en general, como se ve en varios otros puntos de referencia). Solo quiero probarlo por mí mismo (animarme a adaptar node.js).
Responda en un comentario si desea que incluya más fragmentos de código.
Actualización: distribución de tiempo de la aplicación .NET Core
Respuesta del servidor
HTTP/1.1 200 OK
Cache-Control: no-store,no-cache
Date: Fri, 12 May 2017 07:46:56 GMT
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8
Server: Kestrel