SlideShare a Scribd company logo
 A JavaScript runtime environment running
Google Chrome’s V8 engine
◦ a.k.a. a server-side solution for JS
◦ Compiles JS, making it really fast
 Runs over the command line
 Designed for high concurrency
◦ Without threads or new processes
 Never blocks, not even for I/O
 Uses the CommonJS framework
◦ Making it a little closer to a real OO language
 Instead of threads Node uses an event loop
with a stack
 Alleviates overhead of context switching
Threads Asynchronous Event-driven
Lock application / request with
listener-workers threads
only one thread, which
repeatedly fetches an event
Using incoming-request model Using queue and then processes
it
multithreaded server might
block the request which might
involve multiple events
manually saves state and then
goes on to process the next
event
Using context switching no contention and no context
switches
Using multithreading
environments where listener
and workers threads are used
frequently to take an incoming-
request lock
Using asynchronous I/O
facilities (callbacks, not
poll/select or O_NONBLOCK)
environments
 Request for “index.html” comes in
 Stack unwinds and ev_loop goes to sleep
 File loads from disk and is sent to the client
 Servers do nothing but I/O
◦ Scripts waiting on I/O requests degrades
performance
 To avoid blocking, Node makes use of the
event driven nature of JS by attaching
callbacks to I/O requests
 Scripts waiting on I/O waste no space
because they get popped off the stack when
their non-I/O related code finishes executing
NodeJS.ppt
 Use of JS on both the client and server-side
should remove need to “context switch”
◦ Client-side JS makes heavy use of the DOM, no
access to files/databases
◦ Server-side JS deals mostly in files/databases, no
DOM
 JSDom project for Node works for simple tasks, but not
much else
1. It's fast
2. It can handle tons of concurrent requests
3. It's written in JavaScript (which means you can
use the same code server side and client side)
Platform Number of request per
second
PHP ( via Apache) 3187,27
Static ( via Apache ) 2966,51
Node.js 5569,30
 http://nodejs.org/
 http://nodejs.org/cinco_de_node.pdf
 http://ajaxian.com/archives/google-chrome-
chromium-and-v8
 http://blog.chromium.org/2010/12/new-
crankshaft-for-v8.html
 http://news.softpedia.com/news/IE9-RC-vs-
Chrome-10-9-vs-Opera-11-vs-Firefox-11-
Performance-Comparison-183973.shtml

More Related Content

PPT
Node js
PDF
NodeJS ecosystem
PDF
Tech io nodejs_20130531_v0.6
PPT
PDF
Introduction to Node JS.pdf
PPTX
Introduction to node.js GDD
Node js
NodeJS ecosystem
Tech io nodejs_20130531_v0.6
Introduction to Node JS.pdf
Introduction to node.js GDD

Similar to NodeJS.ppt (20)

PPTX
Node.js
PPTX
Beginners Node.js
PPTX
PPTX
Node.js Workshop - Sela SDP 2015
PPTX
Introduction to NodeJS
PPTX
Building Applications With the MEAN Stack
ODP
Nodejs
PDF
Making it fast: Zotonic & Performance
PPT
DDD Framework for Java: JdonFramework
PPTX
Introduction to Node.JS
PDF
"You Don't Know NODE.JS" by Hengki Mardongan Sihombing (Urbanhire)
PDF
Node js internal
PPT
GlobalsDB: Its significance for Node.js Developers
PPTX
PPTX
Scalable server component using NodeJS & ExpressJS
PDF
node.js 실무 - node js in practice by Jesang Yoon
PPTX
Introduction to Node.js
PDF
Node.js introduction
PPT
Life In The FastLane: Full Speed XPages
PPTX
NodeJS guide for beginners
Node.js
Beginners Node.js
Node.js Workshop - Sela SDP 2015
Introduction to NodeJS
Building Applications With the MEAN Stack
Nodejs
Making it fast: Zotonic & Performance
DDD Framework for Java: JdonFramework
Introduction to Node.JS
"You Don't Know NODE.JS" by Hengki Mardongan Sihombing (Urbanhire)
Node js internal
GlobalsDB: Its significance for Node.js Developers
Scalable server component using NodeJS & ExpressJS
node.js 실무 - node js in practice by Jesang Yoon
Introduction to Node.js
Node.js introduction
Life In The FastLane: Full Speed XPages
NodeJS guide for beginners
Ad

Recently uploaded (20)

PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Empathic Computing: Creating Shared Understanding
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Encapsulation theory and applications.pdf
PPTX
Cloud computing and distributed systems.
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Approach and Philosophy of On baking technology
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
KodekX | Application Modernization Development
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Empathic Computing: Creating Shared Understanding
20250228 LYD VKU AI Blended-Learning.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Encapsulation theory and applications.pdf
Cloud computing and distributed systems.
Building Integrated photovoltaic BIPV_UPV.pdf
Approach and Philosophy of On baking technology
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
KodekX | Application Modernization Development
Review of recent advances in non-invasive hemoglobin estimation
MYSQL Presentation for SQL database connectivity
Agricultural_Statistics_at_a_Glance_2022_0.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Dropbox Q2 2025 Financial Results & Investor Presentation
NewMind AI Monthly Chronicles - July 2025
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Spectral efficient network and resource selection model in 5G networks
Mobile App Security Testing_ A Comprehensive Guide.pdf
Ad

NodeJS.ppt

  • 1.  A JavaScript runtime environment running Google Chrome’s V8 engine ◦ a.k.a. a server-side solution for JS ◦ Compiles JS, making it really fast  Runs over the command line  Designed for high concurrency ◦ Without threads or new processes  Never blocks, not even for I/O  Uses the CommonJS framework ◦ Making it a little closer to a real OO language
  • 2.  Instead of threads Node uses an event loop with a stack  Alleviates overhead of context switching
  • 3. Threads Asynchronous Event-driven Lock application / request with listener-workers threads only one thread, which repeatedly fetches an event Using incoming-request model Using queue and then processes it multithreaded server might block the request which might involve multiple events manually saves state and then goes on to process the next event Using context switching no contention and no context switches Using multithreading environments where listener and workers threads are used frequently to take an incoming- request lock Using asynchronous I/O facilities (callbacks, not poll/select or O_NONBLOCK) environments
  • 4.  Request for “index.html” comes in  Stack unwinds and ev_loop goes to sleep  File loads from disk and is sent to the client
  • 5.  Servers do nothing but I/O ◦ Scripts waiting on I/O requests degrades performance  To avoid blocking, Node makes use of the event driven nature of JS by attaching callbacks to I/O requests  Scripts waiting on I/O waste no space because they get popped off the stack when their non-I/O related code finishes executing
  • 7.  Use of JS on both the client and server-side should remove need to “context switch” ◦ Client-side JS makes heavy use of the DOM, no access to files/databases ◦ Server-side JS deals mostly in files/databases, no DOM  JSDom project for Node works for simple tasks, but not much else
  • 8. 1. It's fast 2. It can handle tons of concurrent requests 3. It's written in JavaScript (which means you can use the same code server side and client side) Platform Number of request per second PHP ( via Apache) 3187,27 Static ( via Apache ) 2966,51 Node.js 5569,30
  • 9.  http://nodejs.org/  http://nodejs.org/cinco_de_node.pdf  http://ajaxian.com/archives/google-chrome- chromium-and-v8  http://blog.chromium.org/2010/12/new- crankshaft-for-v8.html  http://news.softpedia.com/news/IE9-RC-vs- Chrome-10-9-vs-Opera-11-vs-Firefox-11- Performance-Comparison-183973.shtml