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
Improving Performance of Growing Django Apps
Search
Williams Mendez
February 19, 2018
Programming
60
0
Share
Improving Performance of Growing Django Apps
How to improve the performance of your app before you face the need to upgrade your hardware.
Williams Mendez
February 19, 2018
Other Decks in Programming
See All in Programming
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
130
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
360
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
2.4k
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
220
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
17
5.7k
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.1k
TAKTでAI駆動開発の品質を設計する
j5ik2o
6
760
The NotImplementedError Problem in Ruby
koic
1
440
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
220
dRuby over BLE
makicamel
2
300
次世代リンターで探る、tsgo 時代における型認識カスタムルールの現実解
ytakahashii
3
1.4k
さぁV100、メモリをお食べ・・・
nilpe
0
130
Featured
See All Featured
Everyday Curiosity
cassininazir
0
220
The untapped power of vector embeddings
frankvandijk
2
1.7k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Fireside Chat
paigeccino
42
3.9k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
590
Designing Experiences People Love
moore
143
24k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
Mind Mapping
helmedeiros
PRO
1
230
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
200
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Transcript
Improving Performance of Growing Django Apps Williams Méndez github.com/wm3ndez/pycaribbean-2018 @wmendezt
//codemera
Common areas of improvement • Database ◦ Slow queries ◦
Too many queries • Slow python code • Cache ◦ Views, Templates ◦ Functions • Templates ◦ Render-blocking assets ◦ Template Tags • Async Tasks ◦ Email ◦ Refresh cache ◦ Others
Common improvements points • Database ◦ Slow queries ◦ Too
many queries • Slow python code • Cache ◦ Views, Templates ◦ Functions • Templates ◦ Render-blocking assets ◦ Template Tags • Async Tasks ◦ Email ◦ Cache ◦ Others
Tools • Your Browser Developer Tools • Django Debug Toolbar
• Django Silk • cProfile (Python built-in profiler)
Tools • Your Browser Developer Tools • Django Debug Toolbar
• Django Silk • cProfile (Python built-in profiler)
Blog Models
Blog Models
The Blog...
Django Debug Toolbar
Views
Templates
Templates
Duplicated queries
Select_related & prefetch_related
Less queries
blog.blog2.models
Before indexing
After indexing
Cache, queues & sessions with Redis
Authors page
Cache View
Template Fragment Caching
Caching function results
Caching function results
Blog 1 vs Blog 3
Django-Silk
Django RQ
Django RQ
Other suggestions • Raw Queries • Invest some time in
learning your DB Engine • Database Tuning • Take care of your Middlewares • Use a custom Auth Model(User) • React/Angular/Vue.js
THANK YOU!