C# 请问如何回收单例中的一个LIST占用的内存 你这个List不是单例哦。删除后,确保没有别的地方引用了的话,也只是告诉系统我不需要这个字符串了。垃圾收集器会在适当的时机进行收集。可以强制调用垃圾收集,通过:GC.Collect(); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 GC应该不行...http://www.cnblogs.com/cadlife/articles/2264613.html看看这个...可以解决的. //内存不回收,在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(); } C# datagridview 最左边一列 C# 中怎么想c++一样定义一个结构体数据只有5bit的数据 怎么实现 windows 我的电脑窗口的左边那栏点击后展现收起的功能 C#如何做成setup文件 请问:Yahoo还是不是目录索引类搜索引擎? nhibernate 级联添加问题 数据库并发问题 Md5加密的BUG,解密出来为空,都进来瞧瞧啦! (各位大虾,请帮忙) C#中连接SQL Server 数据库的问题 请教几个dataGrid的几个技巧 求C# 单击选中外部ListView的方法 C#截取網頁內容 卻出現亂碼
http://www.cnblogs.com/cadlife/articles/2264613.html看看这个...可以解决的.
//内存不回收,在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(); }