GC.Collect () 소개 및 일반 사용 방법
5746 단어 GC
무엇을 세대라고 하는가?
대란 위탁 관리 메모리의 서로 다른 구역을 가리키며 대상이 늙을수록 뒤에 위치한다. 예를 들어 첫 번째 쓰레기 회수 후 어떤 대상이 회수되지 않으면 0대에서 1세대로 이동할 수 있다.무엇을 쓰레기라고 하는가?
쓰레기는 그 어떤 대상도 그와 인용 관계가 없다. 전문적으로 말하면 이 대상부터 인용을 찾고 계속 찾는다. 만약에 그 대상이 뿌리를 인용하고 있는 것을 찾으면 이것은 쓰레기가 아니냐. 뿌리를 찾지 못하면 이 대상은 쓰레기다.
무엇을 뿌리라고 하는가?
루트는 참조 유형을 가리키는 포인터를 포함하는 저장 위치를 가리킨다.예를 들어 정적 변수, 전역 변수는 루트이고 현재 레지스터 안의 대상은 루트이며 현재 호출 창고의 매개 변수는 국부 변수는 모두 루트이다.
또한 쓰레기 수거가 시작될 때 현재 모든 라인이 걸려 있고 위탁 관리 더미의 쓰레기를 수집하기 시작하며 메모리를 수집한 다음에 쓰레기 수거가 끝난 후에 이 라인을 복원해야 한다. 이런 측면에서 쓰레기 수거를 적게 사용하지만 조절할 수 없는지는 상황을 보고 결정해야 한다.
GC.Collect()의 일반적인 사용법은 다음과 같습니다.
......
dpFormulaList.Clear();dpFormulaList = null;inputs.Clear();inputs = null;GC.Collect();
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TestDOME
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
using(Demo de2 = new Demo())
{
de2.dt();
}
Demo de3 = new Demo();
de3.Dispose();
Demo1 d1 = new Demo1();
d1 = null;//
GC.Collect();
}
}
public class Demo : IDisposable//
{
public void dt()
{
}
~Demo()
{
Dispose(false);
}
#region IDisposable Members
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(true);
}
private bool _disposed = false;//
protected virtual void Dispose(bool disposeManageResourse)
{
if (!_disposed)
{
if (disposeManageResourse)
{
//
MessageBox.Show(" 1");
}
_disposed = true;
}
}
#endregion
}
public class Demo1
{
~Demo1()
{
MessageBox.Show(" d1");
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java에서 쓰레기 수거기 GC가 처리량에 미치는 영향 테스트메모리 관리 용어표를 보다가 우연히 "Pig in the Python(주: 중국어의 탐욕이 뱀이 코끼리를 삼키지 못하는 것 같다)"이라는 정의를 발견하고 이 글을 쓰게 되었다.표면적으로 보면 이 용어는 GC가 끊임없...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.