托管内存:对象数高于预期

时间:2016-10-25 09:14:23

标签: c# asp.net memory-management webforms sqlcommand

我对Visual Studio中的诊断工具没有多少经验,而且我用它来进一步使用IDE。

在我的应用程序中,我已经创建了自己的类来帮助解决任何与sql相关的问题,这个类当前在构造函数中创建了一个SqlCommand和SqlConnection,然后它将SqlConnection添加到SqlCommands.Connection然后存储这两个对象进入自己的财产。我会在帖子后面保持这个类,当一个页面需要我放置的命令对象时

SqlHelper Instance;

在cs文件的顶部,然后:

Page_Load:

if (Session["SQLH"] == null)
{
    Instance = new SqlHelper();
    Session["SQLH"] = Instance;
}
else
    Instance = (SqlHelper)Session["SQLH"];

然后我就这样做了:

using(SqlCommand cmd = Instance.cmd)
{
  // Do Stuff
}

(我不想听到任何像#34;等等等等垃圾收集很有效,做到这一点,做到这一点")

好的,现在问题,在调试我的应用程序时,我正在使用我的应用程序的内存使用量的snapsots,如果我搜索SqlCommand,则计数显示为8?如果我搜索SqlHelper(我的类),计数显示为1,我是否读错了结果或者??

我正在使用使用语句,我正在手动关闭我的连接。

Snap Shot示例:

管理内存:    对象类型:SqlCommand
         数:8
          尺寸:xBytes
包容大小:yBytes

如果我选择了objecttype,它会显示7个引用计数" DbCommandDefinition" ??和1个SqlHelper计数。

0 个答案:

没有答案