Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
NSCacheについて
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
Launchable Webinar テストを効率化して生産性を上げる方法
ninjinkun
2
450
ディープリンクの 設計と実装 - iOSDC2017
ninjinkun
17
8.8k
スマートフォンアプリ開発における共創的な開発チーム
ninjinkun
61
18k
ReSwiftでアプリの状態管理 / Reactive Swift Meetup
ninjinkun
9
15k
フリルのアプリ開発今昔物語
ninjinkun
3
2k
プロトタイピング合宿によるデザインリニューアル
ninjinkun
1
2.8k
デザイナーが仕事をしやすいアプリエンジニアを考える
ninjinkun
4
590
Elevationで影が思ったように出ないとき
ninjinkun
4
11k
Square Fragmentやめるってよ
ninjinkun
13
3.2k
Other Decks in Technology
See All in Technology
SRE Lounge 2023/SRE Lounge 2023
lmi
1
340
Oracle Transaction Manager for Microservices Free 22.3 製品概要
oracle4engineer
PRO
5
100
CUEとKubernetesカスタムオペレータを用いた新しいネットワークコントローラをつくってみた
hrk091
1
280
Airdrop for Open Source Projects
epicsdao
0
670
AWS re:Invent 2022で発表された新機能を試してみた ~Cloud OperationとSecurity~ / New Cloud Operation and Security Features Announced at AWS reInvent 2022
yuj1osm
1
190
Deep dive in Reserved Instance ~脳死推奨量購入からの脱却~
kzkmaeda
0
510
ROS_Japan_UG_#49_LT
maeharakeisuke
0
220
グローバルチームことはじめ / Bootstrapping a global team
tasshi
1
670
Stripe / Okta Customer Identity Cloud(旧Auth0) の採用に至った理由 〜モリサワの SaaS 戦略〜
tomuro
0
120
OPENLOGI Company Profile
hr01
0
12k
OCIコンテナサービス関連の技術詳細 /oke-ocir-details
oracle4engineer
PRO
0
770
01_ユーザーリサーチ実施の進め方
kouzoukaikaku
0
350
Featured
See All Featured
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
175
9.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
56
2.5k
Happy Clients
brianwarren
90
5.8k
The Web Native Designer (August 2011)
paulrobertlloyd
76
2.2k
Building a Scalable Design System with Sketch
lauravandoore
451
31k
Stop Working from a Prison Cell
hatefulcrawdad
263
18k
A Modern Web Designer's Workflow
chriscoyier
689
180k
Into the Great Unknown - MozCon
thekraken
2
290
Principles of Awesome APIs and How to Build Them.
keavy
117
15k
Designing for humans not robots
tammielis
245
24k
The Brand Is Dead. Long Live the Brand.
mthomps
48
2.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
643
54k
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