我得到一个奇怪的Razor行为 - 渲染一个大约300个DIV的网页,每个用户信息,循环渲染后,CPU继续以100%单核负载运行大约30秒。没有IO操作,内存利用率没有变化,只是燃烧CPU周期。
该页面是从数据库中渲染数据的300条记录。它不是数据库故障 - 我通过禁用数据库访问来检查它,用虚拟数据替换记录并获得相同的行为。页面在浏览器中呈现并显示,没有其他请求处于活动状态,因此服务器端代码(至少是我的代码)处于空闲状态。
UPD:仅在从Visual Studio中启动站点时才会出现此问题。无论它是在IIS Express还是IIS中托管。两者都运行.NET 4.5.1,MVC 5.1.2。当devenv没有运行时打开同一个站点会使问题消失。
有人可以建议 - 您是否遇到过类似的问题以及您是如何应对的,以及如何确定造成问题的代码?
解决了!这是浏览器链接! http://blogs.msdn.com/b/webdev/archive/2013/06/28/browser-link-feature-in-visual-studio-preview-2013.aspx 禁用它可以解决问题。
答案 0 :(得分:5)
最终,这一切都归结为VS Browser Link。 (http://blogs.msdn.com/b/webdev/archive/2013/06/28/browser-link-feature-in-visual-studio-preview-2013.aspx)
发生的情况是,较小的网页工作得很好,但较大的网页会导致网络服务器进程的负载不成比例地增加,使得服务器的一部分在页面被发送到浏览器。
禁用浏览器链接可解决此问题。