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 插上 C++ 的翅膀
Search
ZHU, Kaidi
November 10, 2018
Programming
1
160
给 Node.js 插上 C++ 的翅膀
ZHU, Kaidi
November 10, 2018
Tweet
Share
More Decks by ZHU, Kaidi
See All by ZHU, Kaidi
Remilia - Structure of Huaban Directional Pinning System
xadillax
0
52
Other Decks in Programming
See All in Programming
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6.1k
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
200
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
690
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
480
Oxlintはいいぞ
yug1224
5
1.4k
高速開発のためのコード整理術
sutetotanuki
1
410
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
230
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2k
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
3.9k
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
1
120
Featured
See All Featured
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
320
Thoughts on Productivity
jonyablonski
74
5k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
130
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Designing Powerful Visuals for Engaging Learning
tmiket
0
240
A designer walks into a library…
pauljervisheath
210
24k
エンジニアに許された特別な時間の終わり
watany
106
230k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
780
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
Transcript
给 NodC.js 插上 CNN 的翅膀
自我介绍 Ø C + Ø N Ø + + +
+ .+ Ø +
一个故事 .
Ø Ø
HH的 PHP 子进程方案 Node.js 进程 PHP 子进程 ONS SDK 启
动 ONS 收 / 发 收 / 发
N多脏? 宝宝只想做一个安静的 Node.js 项目
自己动手, 丰衣足食。 + .
1本 知其然,知其所以然。
动态链接库
如何 require The process.dlopen() method allows to dynamically load shared
objects. It is primarily used by require() to load C++ Addons, and should not be used directly, except in special cases. In other words, require() should be preferred over process.dlopen(), unless there are specific reasons.
都是 C++,与 NodC.js 原 N函数的区 别 +
2时 东风不与周郎便,铜雀春深锁二乔。
回到故事
性能: NBoBy &#
&)#(" "" + %) %)!$ , ((%' #"& '" (" %' # #( #"& '" %&$&"# #$* ("!
注意: 入不敷出 Ø . Ø + 8 I Ø C
N C O I
3法 万法归一,一归何处。
3.1. 环境
2 +- - .
3.2. 瞥
3.3. ChromC V8 I EC H
句柄 HHandle) v8::Local v8::Persistent v8::Eternal
句柄作用域(HandleScHpe) +< G$NH;:3LMG5VO G(H/ 7<R L =06VQ'.O</1H$N% !/7*GVC9 L2TJ E
• K< G • P< G G6" =H,)#=UH< G BA D-@>(4HLIEH$NH5VR %$N =UH G IEV+=U GF8H5VO?5S(H$N& L 2
. + C
常用数据类型
A header file filled with macro and utility goodness for
making add-on development for Node.js easier across versions 0.8, 0.10, 0.12, 1, 2, 3, 4, 5, 6, 7, 8, 9 and 10. 3.4. NAN
CityHasC
3.5. libuv—— 事件循环与异步 • • • •
句柄(Handle)与请求(RequeHt) EF2<??@2D( EF2:3>6<72D( EF2D5@2D(0-/
EF2E6@2D(1./ EF2D;=7B2D( EF23CG>52D( ' # & <;4EF "! % <;4EF ,,, $ EF2B7A2D($ EF297D366B;>8?2D( EF297D366B;>8?)* EF25?>>75D2D( EF2<;CD7>)* H
没什么卵用的睡眠排序
同步原语 C / - / / - / / /
B /
睡眠排序 + 同步原语之互斥锁
ONC 中 Consume S程与事O循环S程N互
ONS 中的 Ack 类
4跳 旋转、跳跃,我不停歇。
DGE——E个老掉牙的 2D 游HG擎
EodG.Hs DGE DGmo
DemD 的样例
5猫 白猫黑猫,抓老鼠就是好猫。
N-APA
N-APA
AebAssembly
ARA64-EACAE82
ARA64-EACAE82
6结 看桃花,开出怎样的结果
FIN # $,'+)+%1,)&'.0*+.%(/- " !