110,535
社区成员
发帖
与我相关
我的任务
分享
public class Class1
{
private static readonly Class1 instance = new Class1();
public static Class1 Instance
{
get { return instance; }
}
public List<string> Objs
{
get { return objs; }
}
private List<string> objs = new List<string>();
}
//内存不回收,在2代才回收
class Program
{
static void Main(string[] args)
{
Console.WriteLine("静态单例当前对像代数为:" + GC.GetGeneration(Class1.Instance));
Console.ReadKey();
Console.WriteLine("添加100万次");
add();
Console.WriteLine("静态单例当前对像代数为:" + GC.GetGeneration(Class1.Instance));
Console.WriteLine("任意键继续");
Console.ReadKey();
Console.WriteLine("删除100万次");
Remove();
//Console.WriteLine("静态单例当前对像代数为:" + GC.GetGeneration(Class1.Instance));
//Console.ReadKey();
//GC.Collect(0);
//Console.WriteLine("回收0代" + System.Diagnostics.Process.GetCurrentProcess().PrivateMemorySize64 / 1024 / 1024);
//Console.ReadKey();
//GC.Collect(1);
//Console.WriteLine("回收1代" + System.Diagnostics.Process.GetCurrentProcess().PrivateMemorySize64 / 1024 / 1024);
//Console.ReadKey();
//GC.Collect(2);
//Console.WriteLine("回收2代" + System.Diagnostics.Process.GetCurrentProcess().PrivateMemorySize64 / 1024 / 1024);
Console.ReadKey();
}
private static void add()
{
var each = System.Linq.Enumerable.Range(1, 100 * 10000).ToList();
each.ForEach((o) =>
{
Class1.Instance.Objs.Add(Guid.NewGuid().ToString());
});
}
public static int GetCount(int leng,int sp=5000)
{
var lon = leng / (double)sp;
if(Math.Floor(lon)<lon)
{
return (int)Math.Floor(lon) + 1;
}
else
{
return (int) Math.Floor(lon);
}
}
private static void Remove()
{
Class1.Instance.Objs.Clear();
}