如何获取ASP.NET请求的完整、有序的调用堆栈?

如何获取ASP.NET请求的完整、有序的调用堆栈?,asp.net,.net,nancy,stackify,code-profiling,Asp.net,.net,Nancy,Stackify,Code Profiling,我试图在我的ASP.NET(Nancy,OWIN/System.Web托管)应用程序中查找一些性能问题 通过分析(即Stackify工具),我注意到某些请求末尾的一些“间隙”,它们不是不明显的调用(例如,不是数据库、HTTP、Redis等) 下面是一个例子:(取自Stackify的前缀工具) 总结: 请求耗时1289毫秒 “Most”(热路径)由SQL查询获取。(我现在对此很满意,可以优化,但不是这个问题的重点) 两个“未跟踪的应用程序代码”间隙,超过500毫秒 特别是,我看到的最后一个间隙(

我试图在我的ASP.NET(Nancy,OWIN/System.Web托管)应用程序中查找一些性能问题

通过分析(即Stackify工具),我注意到某些请求末尾的一些“间隙”,它们不是不明显的调用(例如,不是数据库、HTTP、Redis等)

下面是一个例子:(取自Stackify的前缀工具)

总结:

  • 请求耗时1289毫秒
  • “Most”(热路径)由SQL查询获取。(我现在对此很满意,可以优化,但不是这个问题的重点)
  • 两个“未跟踪的应用程序代码”间隙,超过500毫秒
  • 特别是,我看到的最后一个间隙(340毫秒)很多,是我调查的重点

    Prefix允许通过将程序集列入白名单来获取有关这些“间隙”的更多信息,但问题是我不知道这次使用的是哪个程序集。我的直觉是Nancy/OWIN/一些依赖注入库,等等(我试着把所有这些都列为白名单,但没有用)。我只知道这不是我的直接代码在这个网址

    因此,我的问题是:

  • 关于如何找到此请求的完整且有序的调用堆栈,然后用作前缀的白名单,有什么想法吗?我能用的工具
  • 关于如何追踪这一差距,有什么“中间偏左”的想法吗?另一个代替前缀的工具告诉我时间花在哪里

  • 谢谢

    您可以创建一个JSON文件,其中包含应以JSON格式分析的类和方法(允许使用通配符),从而为前缀和回溯设置自定义.Net代码分析

    参见本文

    以及

    您知道如何解决“未跟踪的应用程序代码”延迟问题吗?