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
5.9k
1
Share
The Cacher in the Rye
Tsukasa OISHI
December 07, 2018
More Decks by Tsukasa OISHI
See All by Tsukasa OISHI
怖くないメモリ肥大化
tsukasa_oishi
1
110
SLI/SLO をストリーム アラインドチームに導入した話
tsukasa_oishi
0
200
JITをたどるとそこはYARVの中
tsukasa_oishi
0
580
ISeqで遊ぼう
tsukasa_oishi
0
5.2k
Rubyを30倍速くした話
tsukasa_oishi
0
1.3k
はてブ砲をくらったときのお話
tsukasa_oishi
0
2.2k
食べログで動いている自作ライブラリのお話
tsukasa_oishi
0
310
奥さんとプログラミングを両立させる方法
tsukasa_oishi
0
97
MiyazakiResistanceを作ってみたよ
tsukasa_oishi
0
1k
Other Decks in Programming
See All in Programming
Xdebug と IDE による デバッグ実行の仕組みを見る / Exploring-How-Debugging-Works-with-Xdebug-and-an-IDE
shin1x1
0
270
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
580
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
8
3.7k
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
700
ロボットのための工場に灯りは要らない
watany
12
3.2k
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
180
年間50登壇、単著出版、雑誌寄稿、Podcast出演、YouTube、CM、カンファレンス主催……全部やってみたので面白さ等を比較してみよう / I’ve tried them all, so let’s compare how interesting they are.
nrslib
4
500
コードレビューをしない選択 #でぃーぷらすトウキョウ
kajitack
3
1.2k
OTP を自動で入力する裏技
megabitsenmzq
0
130
AI Assistants for YourAngular Solutions @Angular Graz, March 2026
manfredsteyer
PRO
0
130
RailsのValidatesをSwift Macrosで再現してみた
hokuron
0
140
AIと共にエンジニアとPMの “二刀流”を実現する
naruogram
0
110
Featured
See All Featured
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
990
GraphQLとの向き合い方2022年版
quramy
50
14k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
100
Designing for Performance
lara
611
70k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
470
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Fireside Chat
paigeccino
42
3.9k
Scaling GitHub
holman
464
140k
Skip the Path - Find Your Career Trail
mkilby
1
93
How STYLIGHT went responsive
nonsquared
100
6k
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-ͷΞΫγϣϯΩϟογϡΛ ͍ͬͯΔ͜ͱ͋Δ աڈʹ࡞ͬͯͣͬͱӡ༻͞Ε͚͍ͭͮͯΔ มͳΩϟογϡ͕͍͔ͭ͋͘ΔͷͰ ͳ͍͖͍ͯͨ͘͠
͓͠·͍