Upgrade to Pro — share decks privately, control downloads, hide ads and more …

NSCacheについて

 NSCacheについて

第43回Cocoa関西 で発表しました。Mac OSX / iOS組み込みのキャッシュモジュールの紹介です。

ninjinkun

March 24, 2012
Tweet

More Decks by ninjinkun

Other Decks in Technology

Transcript

  1. NSCacheʹ͍ͭͯ id:ninjinkun / @ninjinkun

  2. ΞδΣϯμ • NSCacheͱ͸ • ࢖͍ํ • αϯϓϧ • http://github.com/ninjinkun/NSCacheTest •

    InstagramͷΞϓϦొ࿥͕ඞཁ
  3. ֓ཁ NSCacheͱ͸ • ΩϟογϡϞδϡʔϧ • iOS 4.0͔Βಋೖ • εϨουηʔϑ •

    ֨ೲ্ݶΛઃఆՄೳ
  4. ༻్ NSCacheͱ͸ • ը૾Ωϟογϡ • αΠζ͕Ͱ͔͍ͷͰΦϯϝϞϦʹͣͬͱஔ͚ͳ͍ • μ΢ϯϩʔυͨ͠΋ͷΛҰ࣌తʹอଘ͢Δ • ͦͷଞɺ༰ྔ͕େ͖ͯ͘ɺ͍Ζ͍ΖͳεϨου͔ΒΞ

    Ϋηε͞Εͦ͏ͳ΋ͷͳΒԿͰ΋…
  5. ࢖͍ํ • ίʔυΛݟͤΔ • ImageLoaderΫϥεʹ͝஫໨͍ͩ͘͞

  6. ্ݶͷܾఆ ࢖͍ํ • ΦϒδΣΫτͷݸ਺ • setCountLimit: • ΦϒδΣΫτͷίετ • setTotalCostLimit

    • ίετ͸set࣌ʹࣗ෼ͰܾΊΔ • setObject:forKey:cost:
  7. Evictionͷ৚݅ ࢖͍ํ • Կݸ͔ͷΞϧΰϦζϜΛ૊Έ߹Θ͍ͤͯΔΒ͍͠ • جຊతʹ͸LRU (Least Recently Used) Ά͍

    • ࠷ޙʹ࢖ͬͨ΋ͷΛ࢒͢ • ίετ or αΠζ্͕ݶΛ௒͑ͨΒevict
  8. NSCacheͱ࿈ܞ͢ΔΫϥε ͓·͚ • NSDiscardableContent • ഁغՄೳͳσʔλΛදݱ͢Δϓϩτίϧ • ഁغՄೳ͔Λ໰͍߹ΘͤΔϝιου͕͋Δ • NSPurgeableData

    <NSDiscardableContent> • NSMutableDataͷࢠΫϥε
  9. ·ͱΊ • ը૾Ωϟογϡʹ͸NSCache • εϨουηʔϑ • লϝϞϦ • LRU