הClear לא עשוי בדוט נט לניקיון אלא פשוט להחזיר את כל ערכי המערך למצבם התחילתי.
בעיקרון מבחינת המתכנת צריך לדאוג שאין רפרנסים חיים לאובייקטים מיותרים.
לדוגמה אם יש אובייקט ענק ושדה שלו בשימוש איזה אירוע זה מונע הריסה של האובייקט, זה תחום אחירות המתכנת. כל השאר זה דאגה של ה"אוסף הזבל" של דוט נט.
אבל במידה והמשתנה הוא בסקופ של פונקציה לדוגמה, אין צורך אפי' לאפס אותו, סוף התחום שלו הרוס אותו וממילא המידע שלו "יתום" וככזה הGC - "אספן הזבל" מוחק אותו [u:3n26xzb3]מתי שהוא[/u:3n26xzb3].
בתכלס תוכל לראות שאם תעמיס אלפי מגה, מידי פעם תהיה "מחיקה" מסיבית, משא"כ במגה בודדים (מתחת למה שהוקצה לתוכנית מלתכחילה) מסיבות חיסכון בביצועים כנראה הGC לא עושה כלום.
אפשר לאלץ את הGC לאסוף ככה: GC.Collect, אני חושב שזה לא מומלץ ולא יודע למה זה משמש, תוכל לראות שזה עשוה את העבודה באמת בצורה דרמטית מבחינת הזיכרון.
באובייקטים שיש שימוש במשאבים חיצוניים, שלא תחת ניהול הדוט נט, יש צורך בטיפול בסגירת העסק, ובד"כ הם מממשים את IDisosabe ויש לקורא למתודה המתאימה או לעטוף עם Using.
פורסם במקור בפורום CODE613 ב06/04/2014 14:13 (+03:00)