DkmManagedHeapSampler 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
DkmManagedHeapSampler 表示托管堆中对象的采样器。
此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。
public ref class DkmManagedHeapSampler : Microsoft::VisualStudio::Debugger::DkmDataContainer, IDisposable
[System.Runtime.InteropServices.Guid("14537042-a674-0f63-20ba-a9fab411d46a")]
public class DkmManagedHeapSampler : Microsoft.VisualStudio.Debugger.DkmDataContainer, IDisposable
[<System.Runtime.InteropServices.Guid("14537042-a674-0f63-20ba-a9fab411d46a")>]
type DkmManagedHeapSampler = class
inherit DkmDataContainer
interface IDisposable
Public Class DkmManagedHeapSampler
Inherits DkmDataContainer
Implements IDisposable
- 继承
- 继承
- 属性
- 实现
属性
IsUnloaded |
如果为此对象引发了“unloaded”事件,则返回 true (示例:DkmThread::Unload 被调用) 或对象已关闭。 请注意,检查此状态时必须小心,因为如果不进行同步,返回的状态在读取指令后可能不再准确。 (继承自 DkmDataContainer) |
RuntimeInstance |
DkmRuntimeInstance 类表示加载到 DkmProcess 中的执行环境,其中包含要调试的代码。 此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。 |
UniqueId |
唯一标识此 DkmManagedHeapSampler 的 Guid。 此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。 |
WorkerConnection |
[可选]指定与将处理堆采样器操作的工作进程的连接。 此 API 是在 Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview) 中引入的。 |
方法
AnalyzeDuplicateStrings() |
分析在堆上找到的重复字符串,而不返回它们。 应在对象遍历后调用,并且永远不会在根遍历之后调用,因为该过程可能已恢复。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7) 中引入的。 |
AnalyzeEventHandlerLeaks(String[]) |
分析在堆上发现的事件处理程序泄漏,而不返回它们。 应在对象遍历后调用,并且永远不会在根遍历之后调用,因为该过程可能已恢复。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8) 中引入的。 |
AnalyzeSparseArrays() |
分析稀疏数组。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 17 Update 6 (DkmApiVersion.VS17Update6) 中引入的。 |
Close() |
关闭 DkmManagedHeapSampler 对象实例。 这将跨所有组件释放与此对象关联的任何资源。 这包括跨计算机或托管/本机封送边界的资源。 关闭关联的 DkmRuntimeInstance 对象时,DkmManagedHeapSampler 对象会自动关闭。 此方法只能由创建 对象的组件调用。 此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。 |
Create(DkmRuntimeInstance, DkmDataItem) |
Create新的 DkmManagedHeapSampler 对象实例。 调用方负责在创建的对象完成后关闭这些对象。 此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。 |
Create(DkmRuntimeInstance, DkmWorkerProcessConnection, DkmDataItem) |
Create新的 DkmManagedHeapSampler 对象实例。 调用方负责在创建的对象完成后关闭这些对象。 此 API 是在 Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview) 中引入的。 |
DeferRootsAnalysis() |
向堆采样器指示根分析应延迟,并且应在未识别实时对象的情况下返回结果。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 17 Update 4 (DkmApiVersion.VS17Update4) 中引入的。 |
GetAddressesForDuplicatedStringValue(String) |
检索为给定重复字符串值找到的所有地址。 仅返回通过 GetNextDuplicateStrings 获取的字符串的有效结果。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5) 中引入的。 |
GetDataItem<T>() |
获取已添加到此容器实例的“T”的实例。 如果此容器不包含“T”,则此函数将返回 null。 (继承自 DkmDataContainer) |
GetNextDuplicateStrings(UInt32) |
尝试从托管堆检索重复字符串的下一个请求部分的值。 不应在堆演练完成之前调用 。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5) 中引入的。 |
GetNextEventHandlerLeaks(UInt32) |
尝试从托管堆中检索事件处理程序的实例的下一个请求部分的值。 不应在堆演练完成之前调用 。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8) 中引入的。 |
GetNextEventHandlerLeaksJMC(UInt32) |
尝试从托管堆中检索事件处理程序实例的下一个请求部分的值,并筛选出已排除的类型。不应在堆演练完成之前调用 。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8) 中引入的。 |
GetNextSparseArrayDetails(DkmManagedTypeId, UInt32) |
尝试检索稀疏数组实例对象的下一个请求部分的值。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 17 Update 6 (DkmApiVersion.VS17Update6) 中引入的。 |
GetNextSparseArraySummaries(UInt32) |
尝试检索稀疏数组摘要对象的下一个请求部分的值。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 17 Update 6 (DkmApiVersion.VS17Update6) 中引入的。 |
GetRoots() |
从采样堆返回根。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。 |
GetSampledHeapData(UInt32) |
返回序列化对象图数据的下一个请求部分。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。 |
GetSampledHeapDataWithoutRoots(UInt32) |
返回序列化对象图数据的下一个请求部分,不包括根信息。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 17 Update 4 (DkmApiVersion.VS17Update4) 中引入的。 |
GetSampledHeapTypeStats() |
返回堆类型统计信息。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。 |
GetSampledHeapTypeStats176(Boolean) |
返回堆类型统计信息,可以选择在计数中包含死对象。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 17 Update 6 (DkmApiVersion.VS17Update6) 中引入的。 |
GetSegments() |
获取堆中段的列表。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7) 中引入的。 |
GetTotalBytesWastedByEventHandlerLeaks() |
返回托管堆上的事件处理程序泄漏的总字节数。 此计算独立于每个泄漏信息结构的 BytesWasted 值。 这是因为泄漏的子树可能会重叠,从而导致重复计数保留的对象。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8) 中引入的。 |
GetTotalBytesWastedByEventHandlerLeaksJMC() |
返回托管堆上的事件处理程序泄漏的总字节数,其中已筛选出排除的类型。此计算独立于每个泄漏信息结构的 BytesWasted 值。 这是因为泄漏的子树可能会重叠,从而导致重复计数保留的对象。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8) 中引入的。 |
InitializeHeapObjectWalk(UInt32, Boolean) |
初始化堆采样器。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。 |
NextObjects(UInt32) |
遍走堆上给定数量的对象。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。 |
NextReferences(UInt32) |
在堆上遍走给定的引用数。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。 |
NextRoots(UInt32) |
遍走堆上给定数量的 GC 根。 位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。 此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。 |
RemoveDataItem<T>() |
从此容器中删除“T”的实例。 通常不需要调用此方法,因为数据容器会在对象关闭时自动清空。 (继承自 DkmDataContainer) |
SetDataItem<T>(DkmDataCreationDisposition, T) |
在数据容器中放置一个新项。 (继承自 DkmDataContainer) |
显式接口实现
IDisposable.Dispose() |
内容待定。 |