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
NSCacheについて
Search
ninjinkun
March 24, 2012
Technology
2
20k
NSCacheについて
第43回Cocoa関西 で発表しました。Mac OSX / iOS組み込みのキャッシュモジュールの紹介です。
ninjinkun
March 24, 2012
Tweet
Share
More Decks by ninjinkun
See All by ninjinkun
Designer's and Engineer's Thinking Styles
ninjinkun
0
69
Launchable Webinar テストを効率化して生産性を上げる方法
ninjinkun
2
480
ディープリンクの 設計と実装 - iOSDC2017
ninjinkun
18
9.5k
スマートフォンアプリ開発における共創的な開発チーム
ninjinkun
61
18k
ReSwiftでアプリの状態管理 / Reactive Swift Meetup
ninjinkun
9
16k
フリルのアプリ開発今昔物語
ninjinkun
3
2.1k
プロトタイピング合宿によるデザインリニューアル
ninjinkun
1
2.9k
デザイナーが仕事をしやすいアプリエンジニアを考える
ninjinkun
4
600
Elevationで影が思ったように出ないとき
ninjinkun
4
11k
Other Decks in Technology
See All in Technology
レガシーをぶっ壊せ。AEONで始めるDevRelの話 / Qiita Night 2024-2-22
aeonpeople
3
1.3k
Java EE/Jakarta EEの現状と将来―クラウドネイティブ時代にJava EEは対応できるのか?―
takakiyo
1
150
DevOpsメトリクスとアウトカムの接続にトライ!開発プロセスを通して計測できるメトリクスの活用方法
ham0215
2
240
よく聞くけど使ったことないソフトウェアNo.1 KafkaとSnowflake
foursue
4
350
Terraformあれやこれ/terraform-this-and-that
emiki
8
1.4k
Reducing Cross-Zone Egress at Spotify with Custom gRPC Load Balancing Recap
koh_naga
0
200
KubeConにproposalを送りたい人へのアドバイス
sat
PRO
3
250
Google Cloud Next '24 Recap(Cloud Run/k8s)
mokocm
0
130
EMとして2023年度に頑張ったこと / What we did well in FY2023 as a EM
pauli
1
170
ServiceNow Knowledge 24の歩き方 EYストラテジー・アンド・コンサルティング
manarobot
0
190
20240418_Google ColabにLLMが搭載されたようなのでPython x データ分析の勉強方法を考えてみる
doradora09
0
130
20240416_devopsdaystokyo
kzkmaeda
1
220
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
355
18k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
60
14k
Happy Clients
brianwarren
92
6.4k
Ruby is Unlike a Banana
tanoku
96
10k
Thoughts on Productivity
jonyablonski
58
3.8k
Unsuck your backbone
ammeep
663
57k
How to name files
jennybc
65
93k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
78
42k
Design by the Numbers
sachag
274
18k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
30
6k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Transcript
NSCacheʹ͍ͭͯ id:ninjinkun / @ninjinkun
ΞδΣϯμ • NSCacheͱ • ͍ํ • αϯϓϧ • http://github.com/ninjinkun/NSCacheTest •
InstagramͷΞϓϦొ͕ඞཁ
֓ཁ NSCacheͱ • ΩϟογϡϞδϡʔϧ • iOS 4.0͔Βಋೖ • εϨουηʔϑ •
֨ೲ্ݶΛઃఆՄೳ
༻్ NSCacheͱ • ը૾Ωϟογϡ • αΠζ͕Ͱ͔͍ͷͰΦϯϝϞϦʹͣͬͱஔ͚ͳ͍ • μϯϩʔυͨ͠ͷΛҰ࣌తʹอଘ͢Δ • ͦͷଞɺ༰ྔ͕େ͖ͯ͘ɺ͍Ζ͍ΖͳεϨου͔ΒΞ
Ϋηε͞Εͦ͏ͳͷͳΒԿͰ…
͍ํ • ίʔυΛݟͤΔ • ImageLoaderΫϥεʹ͍ͩ͘͝͞
্ݶͷܾఆ ͍ํ • ΦϒδΣΫτͷݸ • setCountLimit: • ΦϒδΣΫτͷίετ • setTotalCostLimit
• ίετset࣌ʹࣗͰܾΊΔ • setObject:forKey:cost:
Evictionͷ݅ ͍ํ • Կݸ͔ͷΞϧΰϦζϜΛΈ߹Θ͍ͤͯΔΒ͍͠ • جຊతʹLRU (Least Recently Used) Ά͍
• ࠷ޙʹͬͨͷΛ͢ • ίετ or αΠζ্͕ݶΛ͑ͨΒevict
NSCacheͱ࿈ܞ͢ΔΫϥε ͓·͚ • NSDiscardableContent • ഁغՄೳͳσʔλΛදݱ͢Δϓϩτίϧ • ഁغՄೳ͔Λ͍߹ΘͤΔϝιου͕͋Δ • NSPurgeableData
<NSDiscardableContent> • NSMutableDataͷࢠΫϥε
·ͱΊ • ը૾ΩϟογϡʹNSCache • εϨουηʔϑ • লϝϞϦ • LRU