在app close Visual Studio 2013中显示哪些对象是活的

Show which objects are alive at app close Visual Studio 2013

本文关键字:对象 显示 close app Visual Studio 2013      更新时间:2023-10-16

是否有办法使visual studio 2013显示哪些对象是活的,当我在调试模式下关闭应用程序?在对象转储开始之前,以可读格式(不是内存地址,而是对象名称)。问题是我有一个大项目,我没有写析构函数(我告诉自己以后再写),现在是以后的事了,我不知怎么地无法判断哪些对象需要正确地销毁。当我关闭应用程序时,我所拥有的只是许多活动对象。因此,如果有一种方法可以显示活动对象的名称(或更好的类型),那将非常有帮助。

PS:我很抱歉,如果这样的东西已经在这里,但我找不到任何东西。

PSS:我知道不写析构函数是不好的做法…从现在开始我会马上写

我不知道这样的功能,但恕我冒昧,你不需要它:

  1. 即使你知道那些活动对象,你也不能确定父对象和析构函数,这些活动对象应该在哪里被销毁

  2. 销毁活动对象在应用程序关闭时不是那么重要,因为操作系统会自动清除所有活动对象(尽管,这并不总是合适的)。

所以我认为最好开始为所有具有构造函数或动态分配资源的对象编写析构函数。每个析构函数都将改进你已经在工作的应用。

对象生命周期视图

  • 对象生命周期视图在Performance Session属性页上检查Also collect . net对象生命周期数据时可用。

  • . net框架的垃圾收集器管理应用程序的内存分配和释放。为了优化垃圾收集器的性能,托管堆分为三代:0、1和2。运行时的垃圾收集器将新对象存储在第0代中。

  • 在收集中幸存的对象被提升并存储在第1代和第2代中。
  • 垃圾收集器通过释放一整代对象来回收内存。对于由概要应用程序创建的对象,对象生命周期视图显示对象的数量和大小以及回收它们的生成。

实例数据

  • 实例数据表示在运行分析时创建的该类型对象的数量,以及垃圾收集器释放这些对象的生成时间。

  • 您可以查看直到剖析运行结束才被释放的实例。

来源:https://msdn.microsoft.com/en-us/library/ms242731(v=vs.120).aspx