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
As fast as C?
Search
Felix Geisendörfer
June 27, 2012
Programming
0
400
As fast as C?
Talk given at the London Node.js User Group.
Felix Geisendörfer
June 27, 2012
Tweet
Share
More Decks by Felix Geisendörfer
See All by Felix Geisendörfer
tus.io - Resumable File Uploads (Lightning Talk)
felixge
2
760
Programming flying robots with JavaScript
felixge
2
940
Programming flying robots with JavaScript
felixge
0
580
Programming an AR Drone Firmware with JS (de)
felixge
1
600
Faster than C?
felixge
1
1.2k
Flying robots over a 10.000 mile distance with JavaScript.
felixge
0
470
Faster than C?
felixge
1
620
The power of node.js (with quadcopters)
felixge
0
480
Faster than C?
felixge
0
400
Other Decks in Programming
See All in Programming
5年間継続して開発した自作OSSの記録
bebeji_nappa
0
160
マルチアカウント環境での、そこまでがんばらない RI/SP 運用設計
wa6sn
0
710
小さく段階的リリースすることで深夜メンテを回避する
mkmk884
2
160
サービスレベルを管理してアジャイルを加速しよう!! / slm-accelerate-agility
tomoyakitaura
1
150
DomainException と Result 型で作る型安全なエラーハンドリング
karszawa
0
880
Devin入門と最近のアップデートから見るDevinの進化 / Introduction to Devin and the Evolution of Devin as Seen in Recent Update
rkaga
9
4.7k
これだけは知っておきたいクラス設計の基礎知識 version 2
masuda220
PRO
24
5.9k
AHC045_解説
shun_pi
0
450
PHP で学ぶ OAuth 入門
azuki
1
120
Going Structural with Named Tuples
bishabosha
0
200
Being an ethical software engineer
xgouchet
PRO
0
200
Unlock the Potential of Swift Code Generation
rockname
0
240
Featured
See All Featured
Navigating Team Friction
lara
184
15k
Done Done
chrislema
183
16k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
380
How STYLIGHT went responsive
nonsquared
99
5.5k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
19
1.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
13
1.4k
A better future with KSS
kneath
239
17k
We Have a Design System, Now What?
morganepeng
52
7.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
Music & Morning Musume
bryan
47
6.5k
A Tale of Four Properties
chriscoyier
158
23k
Transcript
As fast as C? Writing high performance stream parsers in
JS. Felix Geisendörfer June 27, 2012 - London Node.js User Group
Thanks Forward!
Felix Geisendörfer
(@)felixge(.de)
core contributor
transloadit.com
~50 npm modules
node-formidable
node-mysql
Parser Geeks?
As fast as C?
Dubious Benchmarks Ahead!
Selecting 100k blog post rows
None
None
0 15000 30000 45000 60000 node-mysql-0.9.6 node-mysql-libmysqlclient-1.3.3 node-mysql-2.0.0-alpha3 53966 36429
20968 Rows per Second node-mysql-0.9.6 node-mysql-libmysqlclient-1.3.3 node-mysql-2.0.0-alpha3 https://github.com/felixge/mysql-client-benchmarks
0 17500 35000 52500 70000 node-mysql-0.9.6 node-mysql-libmysqlclient-1.3.3 node-mysql-2.0.0-alpha3 php-mysqlnd-5.13 68097
53966 36429 20968 Rows per Second node-mysql-0.9.6 node-mysql-libmysqlclient-1.3.3 node-mysql-2.0.0-alpha3 php-mysqlnd-5.13 https://github.com/felixge/mysql-client-benchmarks
Pure node.js parsers can compete with C Addons
Lessons Learned
Practice
Benchmark First
Buffering can be good!
Code!
it
Sponsors
They’re hiring! @dan_jenkins
Also hiring!
Questions? ” http://felixge.de/
[email protected]
@felixge
Algorithms
------------------------------4a62195680a6 Content-Disposition: form-data; name="upload1"; filename="file1.txt" Content-Type: text/plain file 1 data
... ------------------------------4a62195680a6 Content-Disposition: form-data; name="upload2"; filename="file2.txt" Content-Type: text/plain file 2 data ... ------------------------------4a62195680a6-- Example: Multipart (File Uploads)
Lots and lots of file data ... ------------------------------4a62195680a6 Naive Boundary
Search: One byte at a time