gpt4 book ai didi

c# - 如何将启动时间添加到 MiniProfiler?

转载 作者:行者123 更新时间:2023-11-30 14:52:44 26 4
gpt4 key购买 nike

我想使用 MiniProfiler 为 Application_OnStart 计时。到目前为止,我一直没有成功。我尝试创建一个 Timing 并将其添加到根的子级,但它没有收集我想要的所有数据。它还从整体配置文件时间中减去启动时间,因此它以负持续时间结束。目前我唯一的解决方案是自己用秒表计时并将其添加到客户端计时。这会从第一个请求中删除客户端计时并添加应用程序启动持续时间。但是我没有获得自定义时间等。此外,由于我使用 AddProfilerResults 方法将我的 API 配置文件组合到我的 MVC 配置文件中(对于 MVC UI,它们包含在步骤中),第一个 MVC 上 API 的启动时间request 不包括在内,基本上就丢了。

            MiniProfiler.Current.ClientTimings = new ClientTimings
{
Timings = new List<ClientTimings.ClientTiming>
{
new ClientTimings.ClientTiming
{
Duration = startTime,
Id = Guid.NewGuid(),
MiniProfilerId = Guid.NewGuid(),
Name = "Application_Start",
Start = 0
}
}
};

最佳答案

我们在 Stack Overflow 上的做法是在启动方法中创建一个 MiniProfiler,向其添加步骤,然后将其呈现为静态字符串:

public static string ApplicationStartTimings { get; private set; }

protected void Application_Start(object sender, EventArgs e)
{
// init MiniProfiler.Settings here
// ...
var prof = new MiniProfiler("Application_Start");

using (prof.Step("Register routes"))
{
RegisterRoutes(RouteTable.Routes);
}

// ... more config and steps

try
{
ApplicationStartTimings = prof.Render().ToString();
}
catch { }
}

然后您可以通过路由来显示这些时间。这很棘手,但可以完成工作。

编辑 - 我添加了一个 branch to my MiniProfiler fork which demonstrates这个工作;这是主索引页面上的输出:

enter image description here

关于c# - 如何将启动时间添加到 MiniProfiler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31082870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com