[๐Ÿš€Apollo] Cache - Garbage collection

Jake_Youngยท2021๋…„ 9์›” 17์ผ
0

๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ฒˆ์—ญํ•˜์˜€์Šต๋‹ˆ๋‹ค.

cache.gc()

  • ๋” ์ด์ƒ ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š”(js gc์™€ ๊ฐ™์€ ์›๋ฆฌ) nomalized cache๋ฅผ ์ง€์šด๋‹ค.
  • ์‚ญ์ œ๋œ object์˜ list๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • InMemoryCache์—์„œ ๋ฐ”๋กœ ๋ถ€๋ฅผ ์ˆ˜ ์žˆ๋‹ค. (ApolloClient๊ฐ€ ์•„๋‹ˆ๋ผ)
  • cache.retain()์„ ์“ฐ๋ฉด gc๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ๋‹ค. (ํ•ด์ œ๋Š” cache.release())

cache.evict()

  • ์ด๊ฑธ๋กœ๋Š” object ๋‚ด์˜ single field๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.

Dangling references

  • evicted ๋œ object์˜ reference๋ฅผ apollo๋Š” ๊ทธ๋Œ€๋กœ ๊ฐ–๊ณ  ์žˆ๋Š”๋‹ค.
  • ์™œ๋ƒํ•˜๋ฉด ๋‚˜์ค‘์— ์“ธ ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ๊นŒ.
  • ์ด๋ฅผ dangling reference๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • ์ž์„ธํ•œ ๊ฑด ๋ณ„๋กœ ํ•„์š” ์—†์„ ๊ฒƒ ๊ฐ™์•„์„œ ์ƒ๋žต..
profile
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ํŒŒ์ด์ฌ ๊ทธ๋ฆฌ๊ณ  ์ปดํ“จํ„ฐ์™€ ๋„คํŠธ์›Œํฌ

0๊ฐœ์˜ ๋Œ“๊ธ€