JavaScript Callbacks
* The problem
* The solution
24
Slide 47
Slide 47 text
25
Slide 48
Slide 48 text
25
Slide 49
Slide 49 text
26
Slide 50
Slide 50 text
26
v8
Slide 51
Slide 51 text
26
v8 Spidermonkey
Slide 52
Slide 52 text
26
v8 Spidermonkey Chakra core
Slide 53
Slide 53 text
27
Heap Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
Slide 54
Slide 54 text
28
Heap Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
Slide 55
Slide 55 text
28
Heap Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
Slide 56
Slide 56 text
29
Heap Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
Slide 57
Slide 57 text
29
Heap Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
Slide 58
Slide 58 text
30
Heap Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
Slide 59
Slide 59 text
30
Heap Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
Slide 60
Slide 60 text
31
Heap Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
Slide 61
Slide 61 text
31
Heap Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
Slide 62
Slide 62 text
32
Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
Slide 63
Slide 63 text
33
Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
main
Slide 64
Slide 64 text
34
Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
main
console.log
Slide 65
Slide 65 text
35
Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
One
main
Slide 66
Slide 66 text
36
Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
One
main
SetTimeout
Slide 67
Slide 67 text
37
Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
main cb
One
Slide 68
Slide 68 text
37
Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
main cb
One
Slide 69
Slide 69 text
38
Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
One
main cb
console.log
Slide 70
Slide 70 text
39
Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
One
three
cb
Slide 71
Slide 71 text
40
Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
One
three
cb
Slide 72
Slide 72 text
40
Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
One
three
cb
Slide 73
Slide 73 text
41
Stack
Web apis
setTimeout
dom
ajax
callback queue
Event
loop
One
three
two
Slide 74
Slide 74 text
42
v8 Spidermonkey Chakra core
Slide 75
Slide 75 text
42
v8 Spidermonkey Chakra core
Node.js
Slide 76
Slide 76 text
43
Slide 77
Slide 77 text
44
Everything You Need to Know About Node.js Event Loop
Slide 78
Slide 78 text
45
Slide 79
Slide 79 text
46
Slide 80
Slide 80 text
47
Slide 81
Slide 81 text
~ Rust ~
48
Slide 82
Slide 82 text
What is Rust?
Empowering everyoneto build
reliable and efficient software.
49
Slide 83
Slide 83 text
What is Rust?
* Systems programming language
* Started at Mozilla (firefox)
* used by Amazon/Microsoft/Dropbox...
* Main goals: safety, performance
* fearless concurrency
50
Slide 84
Slide 84 text
51
Slide 85
Slide 85 text
52
Future
Slide 86
Slide 86 text
53
Slide 87
Slide 87 text
54
Slide 88
Slide 88 text
55
Slide 89
Slide 89 text
56
start open
print
error
Slide 90
Slide 90 text
requests/s
57
2.000.000
1.500.000
1.000.000
500.000
0
Rust
(minihttp)
java
(rapidoid)
go
(fasthttp)
go
(stdlib)
node.js
(stdlib)
Slide 91
Slide 91 text
58
Slide 92
Slide 92 text
Futures in Rust
59
mio
tokio
futures
async/await
select/epoll/kqueue
Operating system
external crates
standard library
Slide 93
Slide 93 text
Summary
* asyncio in Python is based on coroutines
* async in javascript is based on
callbacks
* Rust's futures are zero-cost
60
Slide 94
Slide 94 text
Credits
* Pixel backgrounds by slance.com
* Truck and engine logos by Pixelart maker
* Jake Archibald - in the loop
61