C#处理计数

时间:2015-03-10 10:21:50

标签: c#

我正在调查我的某个应用程序可能存在内存泄漏的可能性,因此开始使用一些非常基本的代码示例。我最终得到的一个是,随着时间的推移,在手柄数量(> 3000)方面开始大幅增加。这是一个非常简单的控制台应用程序,代码如下:

public static void Main(string[] args)
{
    using (SqlConnection sqlConnection = new SqlConnection())
    {
    }

    Console.ReadLine();
}

取出SqlConnection调用会删除任何Handle增加,所以我假设它与连接池有关。但由于这只在基本进入等待输入之前只运行一次,为什么Handle计数会继续增加?

感谢。

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:0)

您会发现大多数对象缓存都是由框架对象组成的,例如那些创建的对象,因此您可以访问配置文件和资源而无需自己手动解析文件

IIRC默认对象缓存大约是4000个对象。

你必须记住,仅仅因为你创建和处理单个对象并不代表所有框架工作正在进行