SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby
Node.js y ruby

Mais conteúdo relacionado

Destaque

Destaque (8)

Simulación Y cálculo de Sistemas de Control Realimentado en Python
Simulación Y cálculo de Sistemas de Control Realimentado en PythonSimulación Y cálculo de Sistemas de Control Realimentado en Python
Simulación Y cálculo de Sistemas de Control Realimentado en Python
 
Login social con node.js
Login social con node.jsLogin social con node.js
Login social con node.js
 
Node.JS para Intel Galileo
Node.JS para Intel GalileoNode.JS para Intel Galileo
Node.JS para Intel Galileo
 
Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012
Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012
Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
 
Curso node.js
Curso node.js Curso node.js
Curso node.js
 
Curso de javascript y node avanzado
Curso de javascript y node avanzadoCurso de javascript y node avanzado
Curso de javascript y node avanzado
 
Programación Asíncrona en Node JS
Programación Asíncrona en Node JSProgramación Asíncrona en Node JS
Programación Asíncrona en Node JS
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (10)

Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 

Notas do Editor

  1. Desde los 70 se usó el modelo de un proceso por conexión en los servidores web. Cada proceso instanciado requiere una cantidad de recursos importante. El scheduler del sistema operativo se vuelve más lento con más procesos. Este método no escala.
  2. Los threads coexisten en un mismo proceso compartiendo recursos como memoria Los green threads, threads manejados por la MV, son por lo general más rápidos que los threads pero demoran más en cambiar de contexto.
  3. Los event loops constan de un sólo proceso que está constantemente seleccionando eventos y procesándolos. Se puede evitar el overhead de los multiples stack de ejecución
  4. 2 ejemplos claros de servidores que implementan cada uno uno de estos modelos son Apache y nginx. Apache en un principio tenía un proceso por conexión. Luego con un módulo usaba un thread por conexión. Nginx usa un loop de eventos simple.
  5. En la gráfica vemos qué nginx soporta más req/sec y que la distancia aumentan a medida que aumentan los usuarios
  6. Como apache levanta un thread por cada evento, la cantidad de memoria aumenta linealmente con la cantidad de requests. Nginx por otro lado requiere una cantidad constante de memoria.
  7. Lo fundamental para que el event loop funcione correctamente es que cada evento se procese de la manera más rápida posible. El mayor riesgo en ese sentido son las operaciones de E/S Mientras que el acceso a memoria volátil demora a lo sumo cientos de ciclos de CPU, acceder a disco o a red consume millones de ciclos de CPU
  8. Este tipo de código bloquea todo el event-loop, estamos esperando a que se termine de ejecutar un operación costosa y mientras tanto no estamos procesando otras conexiones.
  9. El programa continúa con la ejecución normal, dejando un puntero a una función que se va a ejecutar cuando se termine de procesar la operación de E/S. Node se basa en la primicia en que así se debe manejar la E/S Todo acceso a base de datos, a disco o a red tiene que realizarse mediante un callback. Node nos brinda librerías no bloqueantes para algunos protocólos básicos de la web como HTTP, DNS, TCP
  10. Hay multiples plataformas en otros lenguajes (eventMachine para ruby, twisted para python, etc) Los desarrolladores javascript están acostumbrados a desarrollar orientado a eventos Un lenguaje como javascript es ideal para implementar callbacks ya que las funciones son ciudadanos de primera clase en Javascript. V8 es rápido y hay muchos compitiendo por hacer javascript más rápido
  11. - No tenemos todas las gemas del mundo ruby - El stop-the-world garbage collection de V8 puede traer problemas cuando se está consumiendo mucha memoria - Casi todas son solucionables
  12. En realidad podemos utilizar node para cualquier tipo de servidor web Es particularmente util para aplicaciones en tiempo real usando comets
  13. Vemos que hacer polling es menos eficiente, se hacen pedidos sin respuesta, demoramos más en tener los datos del servidor, etc Pero se necestia mantener muchas más conexiones abiertas y eso con el modelo de un thread por conexión no es escalable