Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Node.js on Windows - jscamp.asia 2012
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Tomasz Janczuk
November 30, 2012
Technology
220
3
Share
Node.js on Windows - jscamp.asia 2012
Tomasz Janczuk
November 30, 2012
Other Decks in Technology
See All in Technology
論文紹介:Pixal3D (SIGGRAPH 2026)
tenten0727
0
660
Slack MCPでインシデント対応とFAQ生成を加速する:社内ワークショップの実践
lycorptech_jp
PRO
0
120
キャリア25年目にしてTypeScript に出会うまで - 「型」を通じて振り返るプログラミング言語遍歴 / Meeting TypeScript After 25 Years in Tech - Looking Back at My Programming Language Journey Through "Types"
bitkey
PRO
2
130
Directions Asia 2026 | Beyond Buildable AI Agents: Let’s Visualize Partner Value in the AI Era
ryoheig0405
0
140
その英語学習、AWSで代替できませんか?
suzutatsu
1
190
TSKaigi 2026 - 型プラグインシステムの実装に使われるテクニック
teamlab
PRO
1
130
[みん強]AIの価値を最大化するデータ基盤戦略:Self-Service型Data Meshへの転換とAgentic AI Meshに向けた取り組み with Snowflake他
y_matsubara
1
160
AI飲み会幹事エージェントを作っただけなのに
ykimi
0
250
Purview Endpoint DLP 動かしてみた
kozakigh
1
460
The Making of AI Chips
pfn
PRO
0
630
なぜ、IAMロールのプリンシパルに*による部分マッチングが使えないのか? / 20260518-ssmjp-iam-role-principal
opelab
2
150
【禁断】Obsidianの第二の脳に「知の巨人」と呼ばれた師匠の脳をロードしてみた
nagatsu
0
2.5k
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
Making Projects Easy
brettharned
120
6.6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
220
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
800
A designer walks into a library…
pauljervisheath
211
24k
Claude Code のすすめ
schroneko
67
220k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
370
Embracing the Ebb and Flow
colly
88
5k
Designing for Timeless Needs
cassininazir
1
220
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
350
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Transcript
Node.js on Windows. Undisclosured. Tomasz Janczuk Engineer,
Microso< @tjanczuk, github.com/tjanczuk, tomasz.janczuk.org jscamp.asia 2012
EvoluGon of node.js on Windows
Divine Comedy meets WebSockets
w3wp.exe node.exe node.exe Two ways to run
on Windows node.exe iisnode TCP libuv HTTP applicaGon TCP HTTP.SYS IIS iisnode named pipes libuv HTTP applicaGon
Windows Azure
Ways to run in Windows Azure Virtual Machine
Linux or Windows Hosted Service Managed applica;on with VM access on Windows Web Site Managed HTTP applica;on with Git, GitHub, FTP and TFS deployment Mobile Service Backend for Windows 8, Windows Phone or iPhone applica;on
Ways to run in Windows Azure Virtual Machine
Hosted Service Web Site Mobile Service node.exe iisnode
You don’t need Windows to run on Windows Azure
Web Site iisnode npm install azure
node.js + express on iisnode 320 machines 8
data centers 2 billion requests/day peak 45k requests/second peak kernel mode output caching Web Site iisnode
w3wp.exe node.exe node.exe Two ways to run
on Windows node.exe iisnode TCP libuv HTTP applicaGon TCP HTTP.SYS IIS iisnode named pipes libuv HTTP applicaGon
w3wp.exe node.exe node.exe Two Three ways to
run on Windows node.exe iisnode TCP libuv HTTP applicaGon TCP HTTP.SYS IIS iisnode named pipes libuv HTTP applicaGon node.exe TCP HTTP.SYS libuv applicaGon hIp.sys hZps://github.com/tjanczuk/hZpsys
Performance and output caching hZps://github.com/tjanczuk/hZpsys hZp://tomasz.janczuk.org/2012/08/the-‐hZpsys-‐stack-‐for-‐nodejs-‐apps-‐on.html
12461 17364 159902 0 40000 80000 120000 160000 node.js hZp.sys hZp.sys + output caching requests/second Throughput, 1 node.exe process
Output caching var hZp = require('hZpsys').hZp(); hZp.createServer(funcGon
(req, res) { res.writeHead(200); res.cacheDura;on = 60; // cache for 60s res.end(’Hello, world!'); }).listen(8080); hZps://github.com/tjanczuk/hZpsys
Port sharing var hZp = require('hZpsys').hZp(); hZp.createServer(funcGon
(req, res) { res.writeHead(200); res.end(’Second app!'); }).listen(‘hIp://*:80/second’); var hZp = require('hZpsys').hZp(); hZp.createServer(funcGon (req, res) { res.writeHead(200); res.end(’First app!'); }).listen(‘hIp://*:80/first’); hZps://github.com/tjanczuk/hZpsys
When a node app becomes a zombie while(true);
Tripwire to the rescue require('tripwire’).resetTripwire(2000);
while(true); // excep;on a[er 2000ms hZps://github.com/tjanczuk/tripwire
Tripwire to the rescue process.on('uncaughtExcepGon', funcGon (e) {
console.error(’Event loop was blocked!’); process.exit(1); }); require('tripwire’).resetTripwire(2000); while(true); // excep;on a[er 2000ms hZps://github.com/tjanczuk/tripwire
Open sourced and undisclosured npm install azure-‐cli hZps://windowsazure.com
github.com/tjanczuk github.com/windowsazure @tjanczuk `