Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
As fast as C?
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Felix Geisendörfer
June 27, 2012
Programming
500
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
As fast as C?
Talk given at the London Node.js User Group.
Felix Geisendörfer
June 27, 2012
More Decks by Felix Geisendörfer
See All by Felix Geisendörfer
tus.io - Resumable File Uploads (Lightning Talk)
felixge
2
870
Programming flying robots with JavaScript
felixge
2
1k
Programming flying robots with JavaScript
felixge
0
670
Programming an AR Drone Firmware with JS (de)
felixge
1
680
Faster than C?
felixge
1
1.3k
Flying robots over a 10.000 mile distance with JavaScript.
felixge
0
570
Faster than C?
felixge
1
720
The power of node.js (with quadcopters)
felixge
0
560
Faster than C?
felixge
0
500
Other Decks in Programming
See All in Programming
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
230
JIS keyboard support in Omarchy
lef237
0
170
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
440
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
1.6k
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
250
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
6k
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
1.1k
LLM 101
dalinaum
0
360
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
240
Web3Dライブラリを作ってVue Custom Rendererの仕組みを理解しよう / lets learn vue custom renderer by making 3d library
drumath2237
1
110
golang-bob.pdf
iwatsukayura
0
150
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
200
Featured
See All Featured
The SEO Collaboration Effect
kristinabergwall1
1
610
Producing Creativity
orderedlist
PRO
348
41k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
Music & Morning Musume
bryan
48
7.5k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
650
So, you think you're a good person
axbom
PRO
2
2.2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
310
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
590
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
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