[{"data":1,"prerenderedAt":228},["ShallowReactive",2],{"term-g\u002Fgarbage-collection":3,"related-g\u002Fgarbage-collection":221},{"id":4,"title":5,"acronym":6,"body":7,"category":201,"description":202,"difficulty":203,"extension":204,"letter":205,"meta":206,"navigation":162,"path":207,"related":208,"seo":214,"sitemap":215,"stem":218,"subcategory":219,"__hash__":220},"terms\u002Fterms\u002Fg\u002Fgarbage-collection.md","Garbage Collection","GC",{"type":8,"value":9,"toc":195},"minimark",[10,15,19,23,26,30,184,188,191],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 — The Vibe Check",[16,17,18],"p",{},"Garbage collection is your programming language's automatic cleanup crew. When you create variables and objects, they take up memory. When you are done with them, garbage collection sweeps in and frees that memory for you. Languages like Python and JavaScript do this automatically — C and C++ make YOU do it yourself.",[11,20,22],{"id":21},"real-talk","Real Talk",[16,24,25],{},"Garbage collection is automatic memory management where the runtime periodically identifies and frees memory that is no longer reachable by the program. Common GC algorithms include mark-and-sweep, reference counting, and generational collection. GC eliminates manual memory management bugs (use-after-free, double-free) at the cost of occasional pauses and less predictable performance.",[11,27,29],{"id":28},"show-me-the-code","Show Me The Code",[31,32,37],"pre",{"className":33,"code":34,"language":35,"meta":36,"style":36},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F JavaScript GC handles this automatically:\nfunction createUser() {\n  const user = { name: \"Alice\", data: new Array(1000) };\n  return user.name; \u002F\u002F 'user' object is no longer reachable after return\n}  \u002F\u002F GC will free the memory for 'user'\n\n\u002F\u002F In C, YOU must free it:\nfree(user); \u002F\u002F forget this = memory leak\n","javascript","",[38,39,40,49,67,127,148,157,164,170],"code",{"__ignoreMap":36},[41,42,45],"span",{"class":43,"line":44},"line",1,[41,46,48],{"class":47},"sHwdD","\u002F\u002F JavaScript GC handles this automatically:\n",[41,50,52,56,60,64],{"class":43,"line":51},2,[41,53,55],{"class":54},"spNyl","function",[41,57,59],{"class":58},"s2Zo4"," createUser",[41,61,63],{"class":62},"sMK4o","()",[41,65,66],{"class":62}," {\n",[41,68,70,73,77,80,83,87,90,93,97,100,103,106,108,111,114,117,121,124],{"class":43,"line":69},3,[41,71,72],{"class":54},"  const",[41,74,76],{"class":75},"sTEyZ"," user",[41,78,79],{"class":62}," =",[41,81,82],{"class":62}," {",[41,84,86],{"class":85},"swJcz"," name",[41,88,89],{"class":62},":",[41,91,92],{"class":62}," \"",[41,94,96],{"class":95},"sfazB","Alice",[41,98,99],{"class":62},"\"",[41,101,102],{"class":62},",",[41,104,105],{"class":85}," data",[41,107,89],{"class":62},[41,109,110],{"class":62}," new",[41,112,113],{"class":58}," Array",[41,115,116],{"class":85},"(",[41,118,120],{"class":119},"sbssI","1000",[41,122,123],{"class":85},") ",[41,125,126],{"class":62},"};\n",[41,128,130,134,136,139,142,145],{"class":43,"line":129},4,[41,131,133],{"class":132},"s7zQu","  return",[41,135,76],{"class":75},[41,137,138],{"class":62},".",[41,140,141],{"class":75},"name",[41,143,144],{"class":62},";",[41,146,147],{"class":47}," \u002F\u002F 'user' object is no longer reachable after return\n",[41,149,151,154],{"class":43,"line":150},5,[41,152,153],{"class":62},"}",[41,155,156],{"class":47},"  \u002F\u002F GC will free the memory for 'user'\n",[41,158,160],{"class":43,"line":159},6,[41,161,163],{"emptyLinePlaceholder":162},true,"\n",[41,165,167],{"class":43,"line":166},7,[41,168,169],{"class":47},"\u002F\u002F In C, YOU must free it:\n",[41,171,173,176,179,181],{"class":43,"line":172},8,[41,174,175],{"class":58},"free",[41,177,178],{"class":75},"(user)",[41,180,144],{"class":62},[41,182,183],{"class":47}," \u002F\u002F forget this = memory leak\n",[11,185,187],{"id":186},"when-youll-hear-this","When You'll Hear This",[16,189,190],{},"\"The GC pause caused a spike in latency.\" \u002F \"Go has garbage collection, which makes memory management easy.\"",[192,193,194],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":36,"searchDepth":51,"depth":51,"links":196},[197,198,199,200],{"id":13,"depth":51,"text":14},{"id":21,"depth":51,"text":22},{"id":28,"depth":51,"text":29},{"id":186,"depth":51,"text":187},"general","Garbage collection is your programming language's automatic cleanup crew. When you create variables and objects, they take up memory.","intermediate","md","g",{},"\u002Fterms\u002Fg\u002Fgarbage-collection",[209,210,211,212,213],"Memory Leak","Runtime","Heap","Reference Counting","Performance",{"title":5,"description":202},{"changefreq":216,"priority":217},"weekly",0.7,"terms\u002Fg\u002Fgarbage-collection",null,"vRXSu4SysWHtzpVjyA07HYTip02ddPoRbOAo-CY7FVs",[222,225],{"title":209,"path":223,"acronym":219,"category":201,"difficulty":203,"description":224},"\u002Fterms\u002Fm\u002Fmemory-leak","A memory leak is when your program keeps grabbing more memory but never gives it back, like filling a bathtub without a drain.",{"title":210,"path":226,"acronym":219,"category":201,"difficulty":203,"description":227},"\u002Fterms\u002Fr\u002Fruntime","Runtime is the environment where your code actually runs.",1776518283456]