【问题标题】:What is "TargetCore" in a .Net memory trace?.Net 内存跟踪中的“TargetCore”是什么?
【发布时间】:2017-11-22 02:56:00
【问题描述】:

我正在使用 Visual Studio 2015 调试 C# .Net 项目中的内存泄漏。当我查看增长最快的对象的“根路径”时,我在最里面看到 TargetCore<MyCustomClass> [Local Variable]等级。一些快速搜索在TargetCore 上没有找到任何东西。它是什么,我能从中得出什么意义(它如何帮助我解决为什么 MyCustomClass 的实例正在泄漏)?

【问题讨论】:

  • 没有子类,TargetCore`1是密封的
  • Hm.. 如果您只看到这些对象,那么这可能意味着实际上其他东西正在持有那些持有您的对象的 TargetCore。试着找出持有这些 TC 的东西,也许它会解释它。如果它是一个数据流,也许它们有一些注册的延续,也许由于某种原因它们还没有启动?此外,我们在 GitHub 上看到的与您使用的 .Net 版本不同的可能性很小!

标签: c# .net visual-studio memory memory-leaks


【解决方案1】:

自己看看:https://github.com/dotnet/corefx/blob/master/src/System.Threading.Tasks.Dataflow/src/Internal/TargetCore.cs

虽然我不能肯定地告诉你,但有一个评论Provides a core implementation,所以这个类实际上是一个Target<TInput>。从nsSystem.Threading.Tasks.DataflowOfferMessage/SignalOneAsyncMessageCompleted等一些方法来看,我想它实际上是一个MessageTarget类,充当异步操作的聚合点或完成点。

但是,这是我半信半疑的猜测,所以如果您的问题很严重,请不要在没有其他确认的情况下过分依赖我写的内容。另外,这就是为什么我将其标记为“wiki”答案:) 这实际上主要是一个猜测。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多