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
Erlang u praksi
Search
Saša Jurić
November 24, 2012
Programming
1
350
Erlang u praksi
WebCamp Zagreb, 2012
Saša Jurić
November 24, 2012
Tweet
Share
More Decks by Saša Jurić
See All by Saša Jurić
Such Great Heights, Code BEAM Lite, Amsterdam 2018
sasajuric
0
150
Simplifying systems with Elixir - Belgrade
sasajuric
3
410
Simplifying systems with Elixir
sasajuric
2
550
Metagrokking Elixir
sasajuric
4
280
Solid Ground
sasajuric
15
1.2k
Solid Ground
sasajuric
3
820
Elixir - valentine edition
sasajuric
0
120
What's the fuss about Phoenix?
sasajuric
2
1k
Phoenix
sasajuric
1
200
Other Decks in Programming
See All in Programming
2024 컴포즈 정원사
jisungbin
0
150
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
0
120
Scala アプリケーションのビルドを改善してデプロイ時間を 1/4 にした話 | How I improved the build of my Scala application and reduced deployment time by 4x
nomadblacky
1
180
私のEbitengineの第一歩
qt_luigi
0
450
僕が思い描くTypeScriptの未来を勝手に先取りする
yukukotani
9
2.4k
How to Break into Reading Open Source
kaspth
2
220
Ebitengineの1vs1ゲーム WebRTCの活用
ponyo877
0
380
GraphQL あるいは React における自律的なデータ取得について
quramy
11
3k
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
490
Rubyのobject_id
qnighy
6
1.3k
AndroidアプリのUIバリエーションをあの手この手で確認する / Check UI variations of Android apps by various means
tkmnzm
1
180
ドメイン駆動設計を実践するために必要なもの
bikisuke
4
330
Featured
See All Featured
For a Future-Friendly Web
brad_frost
174
9.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
359
19k
Designing the Hi-DPI Web
ddemaree
278
34k
Atom: Resistance is Futile
akmur
261
25k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
1
54
Debugging Ruby Performance
tmm1
72
12k
Faster Mobile Websites
deanohume
304
30k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.9k
Mobile First: as difficult as doing things right
swwweet
221
8.8k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
24
610
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.4k
Side Projects
sachag
451
42k
Transcript
Erlang u praksi
[email protected]
Korisnici
Platforma • jezik • framework (OTP) • runtime
Konkurentnost spawn(...)
Konkurentnost scheduler spawn(...)
Konkurentnost scheduler CPU scheduler CPU scheduler CPU scheduler CPU spawn(...)
Komunikacija P1 poruka P2 P2 = spawn(...), P2 ! Poruka
receive Poruka1 -> ... Poruka2 -> ... ... end
Komunikacija P1 poruka odgovor P2 P2 ! {self(), ...}, receive
... receive {Sender, ...} -> ... Sender ! Response end
Stanje A = 5, A = A + 1
Stanje S f(Stanje) -> Poruka = receive ... end, NovoStanje
= f2(Poruka, Stanje), f(NovoStanje).
Stanje {set, ...} {get, ...} P S f(Stanje) -> Poruka
= receive ... end, NovoStanje = f2(Poruka, Stanje), f(NovoStanje).
Actor model actor actor actor actor actor actor
Supervisor S W
Supervisor W S S S W W W S W
W W W
Http server http_server request_1 request_n request response response
Http server http_server stanje request_1 request_n request response response
Push server korisnik_1 korisnik_2 korisnik_n kanal_2 kanal_1 podaci podaci
Push server <= 3000 paralelnih korisnika ≈ 30 kanala >
2000 requesta u sekundi
Erlang • actor model • supervisor • distribuiranost • mnesia
• hot code swapping • interoperabilnost • alati
Primjena • server • skalabilnost • dinamički requesti
Linkovi • Why Erlang? • Programming Erlang • Learn You
Some Erlang for Great Good! • Erlang and OTP in Action • A History of Erlang • erlang.org • Erlang Programming Group