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
Wano Developer Meetup Vol.3
Search
ShingoYadomoto
December 04, 2019
Programming
0
560
Wano Developer Meetup Vol.3
ShingoYadomoto
December 04, 2019
Tweet
Share
Other Decks in Programming
See All in Programming
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
1
11k
PicoRuby on Rails
makicamel
2
120
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
110
チームで開発し事業を加速するための"良い"設計の考え方 @ サポーターズCoLab 2025-07-08
agatan
0
180
Hypervel - A Coroutine Framework for Laravel Artisans
albertcht
1
110
Modern Angular with Signals and Signal Store:New Rules for Your Architecture @enterJS Advanced Angular Day 2025
manfredsteyer
PRO
0
200
童醫院敏捷轉型的實踐經驗
cclai999
0
210
技術同人誌をMCP Serverにしてみた
74th
1
630
来たるべき 8.0 に備えて React 19 新機能と React Router 固有機能の取捨選択とすり合わせを考える
oukayuka
2
910
#QiitaBash MCPのセキュリティ
ryosukedtomita
0
960
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
500
初学者でも今すぐできる、Claude Codeの生産性を10倍上げるTips
s4yuba
16
10k
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
What's in a price? How to price your products and services
michaelherold
246
12k
Stop Working from a Prison Cell
hatefulcrawdad
270
21k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
Optimizing for Happiness
mojombo
379
70k
Raft: Consensus for Rubyists
vanstee
140
7k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
A better future with KSS
kneath
239
17k
Transcript
ָۂγΣΞػೳͷ ύϑΥʔϚϯεվળ
Profile ॓ຊ ਅޗ TuneCore Japan Web Engineer Perl, Go, etc
͢͜ͱ • ઌى͖ͨΛͲ͏ղܾ͔ͨ͠ • ࣮ͷมߋɾPerl —> Go ҠߦʹΑΔύϑΥʔϚϯε্ঢ
None
None
None
2019-12-14 00:00 Ҏ߱ʹΞΫηε͢Δͱ
None
LinkCore • ֤৴ετΞͷURL͕ҰׅγΣΞՄೳ • ୭͕ɾͲͷετΞͰͷ౷ܭσʔλΛӾཡՄೳ
ʂʂWarningʂʂ
None
None
None
None
ى͖ͨ • SNSͰ֦ࢄ్ͨ͠ʹΞΫηεूத • 30ఔAppαʔόʔͷCPU༻͕MAXʹ…
ରࡦ͍ͯ͠ͳ͔ͬͨʁ
چରࡦ • CDN • AMP • DBΩϟογϡ
• CDN • AMP • DBΩϟογϡ ৴ͷ00:00Ҏ߱ΩϟογϡΛߋ৽͠ͳ͍ͱ͍͚ͳ͍ —> Ωϟογϡͷ͕ؒʹ߹Θͳ͍
ϝδϟʔͳϦϦʔεࡹ͖Εͳ͍ +α: ඇಉظͰ౷ܭใΛDBʹอଘ
ΞϓϦέʔγϣϯଆͰରࡦΛUpdate͢Δ͜ͱʹ
৽ରࡦ GET: ϖʔδදࣔ —> ༗ޮظݶ͖ͰHTMLΛDBʹΩϟογϡ hashͷΩϟογϡΛ༻ POST: ౷ܭσʔλ —> อଘઌΛDB͔ΒϑΝΠϧʹมߋ
౷ܭσʔλΛҰ࣌తʹRDBʹอଘ
ϦΫΤετ DBʹอଘ detailςʔϒϧͷใΛsummaryςʔϒϧʹอଘʢcronʣ Insert Select ᶃ ᶄ
ϦΫΤετ ϑΝΠϧʹอଘ ϑΝΠϧͷใΛsummaryςʔϒϧʹอଘʢcronʣ Write Read ᶃ ᶄ
ʢ৽ରࡦʣ PerlΊΔ
Benchmark • App(PerlɾGO) : Ubuntu • DB : mysql ڥ
Docker macOS Mojave $ ab -n 500 -c 50 • ૯ϦΫΤετ: 500 • ಉ࣌ଓ: 50 • ฏۉϨΠςϯγͷΈूܭ Apache Bench πʔϧ
Benchmark 1. hashΩϟογϡ 2. HTMLΩϟογϡ 3. hashΩϟογϡ 4. HTMLΩϟογϡ Perl
Go GET: ϖʔδදࣔ
Benchmark ݁Ռ: GET ϨΠςϯγ hashΩϟογϡ(P) 117.7ms HTMLΩϟογϡ(P) 29.0ms HTMLΩϟογϡ(G) 1.5ms
Benchmark ݁Ռ: GET ϨΠςϯγ hashΩϟογϡ(P) 117.7ms HTMLΩϟογϡ(P) 29.0ms HTMLΩϟογϡ(G) 1.5ms
×4.0 ×19.3
Benchmark ݁Ռ: GET ϨΠςϯγ hashΩϟογϡ(P) 117.7ms HTMLΩϟογϡ(P) 29.0ms HTMLΩϟογϡ(G) 1.5ms
×78.5
Benchmark ݁Ռ: GET hash(P) HTML(P) HTML(G) 0 30 60 90
120
Benchmark 1. DBʹอଘ 2. ϑΝΠϧʹอଘ 3. DBʹอଘ 4. ϑΝΠϧʹอଘ Perl
Go POST: ౷ܭσʔλ
Benchmark ݁Ռ: POST ϨΠςϯγ To DB(P) 32.2ms To File(P) 27.9ms
To DB(G) 4.2ms To File(G) 2.9ms
Benchmark ݁Ռ: POST ϨΠςϯγ To DB(P) 32.2ms To File(P) 27.9ms
To DB(G) 4.2ms To File(G) 2.9ms ×1.2 ×1.4
Benchmark ݁Ռ: POST ϨΠςϯγ To DB(P) 32.2ms To DB(G) 4.2ms
To File(P) 27.9ms To File(G) 2.9ms ×7.7 ×9.6
Benchmark ݁Ռ: POST ϨΠςϯγ To DB(P) 32.2ms To File(P) 27.9ms
To DB(G) 4.2ms To File(G) 2.9ms ×11.1
Benchmark ݁Ռ: GET To DB(P) To File(P) To DB(G) To
File(G) 0 10 20 30 40
·ͱΊ • ࣮มߋͰGET:4ഒɾPOST: 1~2ഒ΄Ͳվળ • ݴޠมߋͰGET:19ഒɾPOST: 7~9ഒ΄Ͳվળ • ࠷ऴతʹGET:78ഒɾPOST: 11ഒ΄Ͳվળ
• DBͷอଘͱϑΝΠϧͷॻ͖ࠐΈ༧ΑΓ͕ มΘΒͳ͔ͬͨ • Perl to Go ੌ·͍͡
None