ASP.NET,MVC,Entity Framework网站放慢了TTFB

问题描述 投票:1回答:1

我在我公司本地的服务器上创建了一个托管在IIS中的网站,它只会被业务员工使用。我一直在使用Chrome开发工具监控网络活动并查看加载时间等。我注意到我的TTFB总是非常慢,即使我加载的数据非常少。

我之前读过一篇文章说TTFB理想情况下应该小于500毫秒,但我的日常工作时间通常超过3或4秒!

我已经包含了开发工具页面的屏幕截图,显示了我的意思:

enter image description here

我加载的特定页面是主页。它使用EF6连接到MSSQL DB,并进行一次查询以检查一个人是否存在于包含大约200个条目的表中。这是代码:

using (var db = new DbContext())
{
     var ad = httpContext.User.Identity.GetActiveDirectory();

     var person = db.PERSON.Include(p => p.PERSON_PRIVILEGE_ALLOC).FirstOrDefault(p => p.ACTIVE_DIRECTORY == ad);
}

如果我使用IIS Express在我的机器上加载同一页面,则html doc的TTFB为35ms。与在我们的主服务器上加载的3450ms的TTFB相比。

这是我第一个正式托管的网站,所以我对此比较陌生。我理解TTFB是什么,但我不确定这么长时间内需要什么? Db查询小而快,html没有超大,使用GZIP压缩时CCS和JS约为1MB。

有没有人有什么信息或建议导致这种情况以及如何加速?它可能只是由服务器引起的吗?

performance entity-framework google-chrome web model-view-controller
1个回答
0
投票

这似乎是服务器或服务器配置的问题。也许与Active Directory或数据库的连接需要很长时间。

您可以使用Stopwatch class诊断性能问题。

在调用AD之前启动秒表并记录呼叫返回时经过的时间。为数据库查询启动第二个秒表并记录结果。

© www.soinside.com 2019 - 2024. All rights reserved.