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
The Cacher in the Rye
Search
Tsukasa OISHI
December 07, 2018
Programming
6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The Cacher in the Rye
Tsukasa OISHI
December 07, 2018
More Decks by Tsukasa OISHI
See All by Tsukasa OISHI
怖くないメモリ肥大化
tsukasa_oishi
1
120
SLI/SLO をストリーム アラインドチームに導入した話
tsukasa_oishi
0
210
JITをたどるとそこはYARVの中
tsukasa_oishi
0
590
ISeqで遊ぼう
tsukasa_oishi
0
5.3k
Rubyを30倍速くした話
tsukasa_oishi
0
1.3k
はてブ砲をくらったときのお話
tsukasa_oishi
0
2.3k
食べログで動いている自作ライブラリのお話
tsukasa_oishi
0
320
奥さんとプログラミングを両立させる方法
tsukasa_oishi
0
110
MiyazakiResistanceを作ってみたよ
tsukasa_oishi
0
1.1k
Other Decks in Programming
See All in Programming
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
180
freeeにおけるEvalsの実践例の紹介
freee
PRO
0
110
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
220
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
560
React本体のコードリーディング
high_g_engineer
1
140
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
4.4k
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
360
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
470
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
680
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
260
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
850
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
370
Featured
See All Featured
How to Talk to Developers About Accessibility
jct
2
510
Speed Design
sergeychernyshev
33
2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
200
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Tell your own story through comics
letsgokoyo
1
1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
240
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
210
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
440
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
Transcript
Tsukasa Oishi tsukasaoishi 5IF$BDIFSJOUIF3ZF
͓͓͍͔ͭ͠͞
None
None
None
None
GSBHNFOUDBDIF
ߋ৽සͷ͍ίϯςϯπ
-40 -20 0 20 40 4݄ 5݄ 6݄ 7݄ 8
-40 -20 0 20 40 4݄ 5݄ 6݄ 7݄ 8
Eviction
256B 307B
256B 307B
256B 307B
256B 307B
256B 307B
256B 307B
256B 307B
256B 307B
256B 307B
256B 307B
256B 307B
256B 307B
NFNDBDIFE࠶ىಈ
3BJMTσϑΥϧτͰΩϟογϡۭ͕ؒͻͱͭ
ڧ͍͕ͭಠΓΊ
CJU[FS@TUPSFHFN STU@PCKFDUT VTFS@GPPUFS TIBSFE STU@GPPUFS FYUFSOBM
CJU[FS@TUPSFHFN Rails.cache.fetch(key, sheep: :rst_footer) STU@PCKFDUT VTFS@GPPUFS EFGBVMU STU@GPPUFS FYUFSOBM
PCKFDUDBDIF
3FTUBVSBOUpOE@CZ@DBDIF JE
3BJMTDBDIFGFUDI ʜ EP 3FTUBVSBOUQSFMPBE SFTUBVSBOU@TDPSF QSFGFDUVSF DBUFHPSZ@BT
pOE JE FOE
৯ϩάͷ͋ͪΒͪ͜ΒͰ ΘΕΔΑ͏ʹͳͬͨ
Benchmark.driver do |x| x.report "AR", %|Restaurant.preload( :restaurant_score, :prefecture, :category_as ).find(1)|
x.report "cache", %|Rails.cache.read(“1")| x.report "mono", %|Restaurant.find(1)| x.compare! end
mono: 1887.1 i/s cache: 729.3 i/s - 2.59x slower AR:
57.5 i/s - 32.84x slower
3FTUBVSBOUΦϒδΣΫτ͕ཉ͍͚ͩ͠ͳΒ ;ͭ͏ʹ3FTUBVSBOUpOEͨ͠΄͏͕ ͔ͬͨʜ
Ωϟογϡʹ ίετ͕͔͔Δ
طଘͷίʔυͯ͠·ͤΜ
mono: 1887.1 i/s cache: 729.3 i/s - 2.59x slower AR:
57.5 i/s - 32.84x slower 2.59ഒ ͍! େมͩ!
NTͷͩ͠ɺͦ͜ϘτϧωοΫͰͳ͍
DBDIFDMFBS
3FTUBVSBOU DSFBUFVQEBUFEFMFUF 3FTUBVSBOU PCKFDUDBDIF 3FTUBVSBOU GSBHNFOUDBDIF
SFTUBVSBOUTςʔϒ ϧʹ ΧϥϜՃͰྫ֎ൃੜ
3FTUBVSBOU DSFBUFVQEBUFEFMFUF 3FTUBVSBOU PCKFDUDBDIF 3FTUBVSBOU GSBHNFOUDBDIF 3FTUBVSBOU BMUFSUBCMF
ϚΠΫϩαʔϏε
3FTUBVSBOU DSFBUFVQEBUFEFMFUF 3FTUBVSBOU PCKFDUDBDIF 3FTUBVSBOU GSBHNFOUDBDIF 3FTUBVSBOU BMUFSUBCMF 3FTUBVSBOU DSFBUFVQEBUFEFMFUF
3FTUBVSBOU GSBHNFOUDBDIF
Ͳ͏ӡ༻͢Δʹͯ͠ίετ૿େ͢Δ
ԯਓͷਓͨͪΛ͚ͩͤ͢͜͠ʹ͢Δ XFBSFIJSJOH
Ωϟογϡ͍ΕΕ ͪΐͬͺͰ͢Α
ӡ༻Λߟ্͑ͨͰ Λݴ͓ͬͯΔͷ͔
తͱظ͢ΔޮՌ ϨεϙϯελΠϜΛ͍ͨ͘͠ αʔόϦιʔεΛิ͍͍ͨ
ӡ༻ͱίετ ΩϟογϡσʔλͷҰੜ ͯ͢ͷΩϟογϡ͕ফ͑ͨͱ͖ ΩϟογϡΛҙ࣮ࣝͨ͠ ࢹͱอक
ϦεΫ ΩϟογϡΛΊΒΕͳ͍ దͰͳ͍Ωϟογϡ͕ΘΕͨ Ωϟογϡ͕ফ͑ͳ͍ ώοτ͗ͯ͢ίετ͚͕͔͔ͩΔ
ΩϟογϡΛ͍͍ͨͱࢥͬͨͱ͖ͷߟ͑ํ
Θͳ͍
ϨεϙϯελΠϜΛ͍ͨ͘͠ αʔόϦιʔεΛิ͍͍ͨ
ͪΌΜͱߟ͑ͯઃܭͱ࣮Λ͢Ε తΛୡͰ͖Δ
Ͱɺ ͜ΕΛΖ͏ͱͨ͠Β Ͳ͏ͬͨͬͯ Ωϟογϡൈ͖͡ΌແཧͩΖ
اըͷஈ֊Ͱʮ͜Εةͳ͘ͶʁʯΛײ͡औΔ
ຊʹΓ͍ͨ͜ͱΛཧղͯ͠ ઐՈͱͯ͠ ͖ͪΜͱͨ͠ସҊΛग़͢
Ωϟογϡʹର͢Δߟ͑ํ
ෛ࠴
ෛ࠴ѱ Ͱͳ͍
͍͟ͱ͍͏ͱ͖ ֮ޛΛͬͯ ෛ࠴Λഎෛ͏
৯ϩάͰͷΩϟογϡ ेͳϦιʔε͕͋ΔͷͰجຊతʹΩϟογϡෆཁ ಥൃతͳΞΫηε૿ʹରԠ͢ΔͨΊʹ ࣌ؒ55-ͷΞΫγϣϯΩϟογϡΛ ͍ͬͯΔ͜ͱ͋Δ աڈʹ࡞ͬͯͣͬͱӡ༻͞Ε͚͍ͭͮͯΔ มͳΩϟογϡ͕͍͔ͭ͋͘ΔͷͰ ͳ͍͖͍ͯͨ͘͠
͓͠·͍