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
Moscow Julia Meetup #2 - Julia and Web under load
Search
Gleb Ivashkevich
June 14, 2019
Technology
68
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Moscow Julia Meetup #2 - Julia and Web under load
Gleb Ivashkevich
June 14, 2019
More Decks by Gleb Ivashkevich
See All by Gleb Ivashkevich
Moscow Julia Meetup #2 - Deep learning in Julia
phtraveller
0
52
Moscow Julia Meetup #1 - Julia and ML
phtraveller
0
86
Moscow Julia Meetup #1 - Julia and Web
phtraveller
0
70
Other Decks in Technology
See All in Technology
「エーアイ」をバズワードにしないために RPA 導入経験と Kiro 上での Claude モデル利用経験から
kazzpapa3
0
100
sue445's proposals 2026
sue445
0
110
DGX Spark でどこまでハッキングができるのか?
kash1064
3
1.4k
エンタメ企業のM&Aを支えるデータ基盤 ― 統合から店舗のリアルタイム分析まで / Data Engineering Summit 2026
genda
0
200
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
160
Browser Spec: Testing Hotwire with Ruby
takahashim
1
130
M5Stackで作る BLEマウス GPSログの世界
tomokusaba
PRO
0
440
Active Record Connection Adaptersにおける長年の課題に再び取り組む
yahonda
0
240
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
840
React改造してみた
tsukina_7mochi
0
130
Getting Started with Google Antigravity
glaforge
0
320
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
300
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
970
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
67k
Darren the Foodie - Storyboard
khoart
PRO
4
4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
730
Typedesign – Prime Four
hannesfritz
42
3.2k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.9k
Scaling GitHub
holman
464
140k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.3k
Why Our Code Smells
bkeepers
PRO
340
58k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
630
First, design no harm
axbom
PRO
2
1.3k
Transcript
Moscow Julia Meetup #2 Владимир Филонов Julia и Web
whoami - Разрабатываю нагруженные и не очень системы. В основном
Python и Erlang/Elixir - Преподаю Python в LearnPython и OTUS - Экспериментирую с новыми технологиями и языками
Disclamer - Не использую Julia в production
Disclamer - Не использую Julia в production - Всё ещё
=)
В прошлый раз
Http.jl Pros - All-in-one - Хорошо развивается - Планируют стать
частью stdlib Cons - Низкоуровнево - Нет встроенного парсера JSON
Mux.jl Pros - Вся сила HTTP.jl - С сахаром Cons
- В HTTP.jl есть своя поддержка middleware - Всё еще встроенного парсера JSON
Bukdu.jl Pros - Генератор форм - Встроенная сериализация JSON Cons
- А вот десиарелизации JSON нет - С документацией не очень
Genie.jl Pros - Очень похож на MVC. Может почти всё
- Наконец полноценная работа с JSON Cons - Сложный старт - С документацией, как и везде - не очень
Нагрузка
- Микросервис смс-рассылок Что тестировал
- Микросервис смс-рассылок - Точнее его часть: проверка статусов -
Что тестировал
Что тестировал - Микросервис смс-рассылок - Точнее его часть: проверка
статусов - Боевая база: ~2 000 000 записей
Что тестировал - Микросервис смс-рассылок - Точнее его часть: проверка
статусов - Боевая база: ~2 000 000 записей - 4 Julia реализаций
Что тестировал - Микросервис смс-рассылок - Точнее его часть: проверка
статусов - Боевая база: ~2 000 000 записей - 4 Julia реализаций - HTTP.jl, Mux.jl, Bukdu.jl, Genie.jl
- Микросервис смс-рассылок - Точнее его часть: проверка статусов -
Боевая база: ~2 000 000 записей - 4 Julia реализаций - (HTTP.jl, Mux.jl, Bukdu.jl, Genie.jl) + LibPQ.jl - 3 Python реализации Что тестировал
- Микросервис смс-рассылок - Точнее его часть: проверка статусов -
Боевая база: ~2 000 000 записей - 4 Julia реализаций - (HTTP.jl, Mux.jl, Bukdu.jl, Genie.jl) + LibPQ.jl - 3 Python реализации - (flask, aiohttp, sanic) + psycopg2 Что тестировал
- wrk Чем тестировал
- wrk - Немного Lua Чем тестировал
- wrk - Немного Lua - Docker Чем тестировал
- wrk - Немного Lua - Docker 2 треда, 50
коннектов Чем тестировал
Что же вышло?
- ~1110 RPS - ~48 ms HTTP.jl
- ~1090 RPS - ~55 ms Mux.jl
- ~920 RPS - ~60 ms Bukdu.jl
- ~720 RPS - ~80 ms Genie.jl
Сравнение с Python
- ~980 RPS - ~50 ms Flask
sanic - ~3400 RPS - ~20 ms
aiohttp - ~3600 RPS - ~25 ms
Резюме
Резюме - Синхронная Julia не медленнее синхронного Python
Резюме - Синхронная Julia не медленнее быстрее синхронного Python
Резюме - Синхронная Julia не медленнее быстрее синхронного Python -
Асинхронный Python сильно быстрее
Резюме - Синхронная Julia не медленнее быстрее синхронного Python -
Асинхронный Python сильно быстрее - Джулии нечем ответить
Резюме - Синхронная Julia не медленнее быстрее синхронного Python -
Асинхронный Python сильно быстрее - Джулии нечем ответить - Пока
Цель
Цель - Реализовать минимальный асинхронный фреймворк на Julia
вопросы?