bindings
- JS調(diào)用C/C++庫(kù)(eq:http_parser)的中間橋梁(eq:http_parser_bindings.cpp) ;用node.js提供的編譯工具編譯為.node文件爽冕,JS代碼直接require這個(gè).node文件泉坐,這樣js就可以調(diào)用http_parser庫(kù)
libuv
- 跨平臺(tái)的異步I/O庫(kù) (I/O: 所有的輸入輸出操作)
- 可以用于TCP/UDP/DNS/文件等的異步操作
V8
- 講JS源代碼變成本地代碼并執(zhí)行
- 維護(hù)調(diào)用棧烘嘱,確保JS函數(shù)執(zhí)行順序
- 內(nèi)存管理陋率,為所有對(duì)象分配內(nèi)存
- 垃圾回收试伙,重復(fù)利用無用的內(nèi)存
- 實(shí)現(xiàn)JS標(biāo)準(zhǔn)庫(kù)
Event Loop
-
對(duì)時(shí)間處理順序的管理
- timers 檢查計(jì)時(shí)器礁哄; poll輪詢睹逃,檢查系統(tǒng)事件牙咏; check 檢查 setImmediate回調(diào)亚脆;大部分時(shí)間Node.js停在poll階段做院; 大部分事件都在poll被處理,eq 文件濒持、網(wǎng)絡(luò)請(qǐng)求