gpt4 book ai didi

entity-framework - 使用mvc-mini-profiler的EF剖析性能慢

转载 作者:行者123 更新时间:2023-12-04 04:27:12 26 4
gpt4 key购买 nike

当我使用以下功能创建上下文时,探查器显示出与标准EF(版本4)上下文创建方法相比增加了300毫秒。还有另一种方法可以达到更好的性能吗?它违反了性能分析的目的。

    public static Models.MyEntities GetContext()
{
var profiler = MiniProfiler.Current;
var sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnString"].ConnectionString);
var profiledConnection = MvcMiniProfiler.Data.ProfiledDbConnection.Get(sqlConn, profiler);
return ObjectContextUtils.CreateObjectContext<Models.MyEntities>(profiledConnection);
}

第一个使用上面的函数创建上下文。第二种是使用标准的EF上下文创建方法。这是使用mvc-mini-profiler的性能差异:

探查器EF上下文:89.1
某些数据库命中率:317.9

普通EF上下文:0.1
某些数据库命中率:7.4

更新2:
我在Visual Studio中进行了一些分析,看来主要的耗时操作是MvcMiniProfiler.Helpers.StackTraceSnippet.Get(),并且在其中调用了System.Diagnostics.StackTrace..ctor(bool)。这需要很长时间才能完成,并且似乎是造成上述延迟的原因。

最佳答案

我推了一个changeset to the profiler,它允许禁用堆栈跟踪,因为许多查询可能会影响性能分析。

只需在应用程序启动期间设置以下设置:

MiniProfiler.Settings.ExcludeStackTraceSnippetFromSqlTimings = true;

关于entity-framework - 使用mvc-mini-profiler的EF剖析性能慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6439827/

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