我有一个MVC项目,想加快速度。但我对于我无法控制的BeginProcesRequest()感到困惑。通过使用New Relic,我发现该方法平均消耗了完成交易所需时间的90%。
我的控制器中的代码非常简单。它查找用户的操作会话并在找到时重定向到其仪表板。实际页面上没有任何数据库调用。唯一的代码是:
我的控制器中的代码非常简单。它查找用户的操作会话并在找到时重定向到其仪表板。实际页面上没有任何数据库调用。唯一的代码是:
if (Session["UserID"] != null)
// Perform actions
如您在截图中所见,BeginProcessRequest() 方法需要近4秒钟的时间。
这不可能只是我的网站独有的问题吧?我在服务器上使用小型EC2实例,并且虽然有其他应用程序在运行,但CPU和内存在整个请求过程中基本保持为0。
编辑 - 查看以下帖子:
What happens in BeginProcessRequest()?
但是,由于我的应用程序处于空闲状态时最耗时的请求发生,因此我无法看到它与竞争线程有任何关系。