我发现ASP.NET MVC比ASP.NET WebForms快30倍.有什么真正的性能差异,这是衡量和性能的好处.
这是为了帮助我考虑从ASP.NET WebForms迁移到ASP.NET MVC.
我们还没有进行必要的可扩展性和性能测试,以得出任何结论.我认为ScottGu可能一直在讨论潜在的性能指标.随着我们向Beta和RTM迈进,我们将在内部进行更多的性能测试.但是,我不确定我们的政策是关于发布性能测试的结果.
无论如何,任何此类测试都需要考虑实际应用......
我认为这将是一个难以回答的难题,因为这将取决于A)如何实现WebForms应用程序,以及B)如何实现MVC应用程序.在它们的"原始"形式中,MVC可能比WebForms更快,但是多年和多年的工具和经验已经产生了许多用于构建快速WebForms应用程序的技术.我愿意打赌,一位资深的ASP.NET开发人员可以生成一个可以与任何MVC应用程序的速度相媲美的WebForms应用程序 - 或者至少可以实现微不足道的差异.
正如@tvanfosson建议的那样,真正的区别在于可测试性和干净的SoC.如果提高性能是您最关心的问题,我认为这不是跳上WebForms并开始在MVC中重建的理由.至少在您尝试使用可用于优化WebForms的技术之前.
它将我的一个页面从2MB有效载荷减少到200k,只需删除视图状态并以编程方式使其可以使用提交的输出.
仅仅大小,即使处理相同,也会在每秒连接数和请求速度方面产生巨大的改进.
我认为许多认为WebForms本身就很慢或资源密集的人将责任归咎于错误的地方.当我被引入优化webforms应用程序的时候,有9个中有9个应用程序作者误解了viewstate的目的.我并不是说视图状态是完美的或任何东西,但它很容易滥用它,正是这种滥用导致了臃肿的视野状态.
这篇文章无法帮助我理解许多这些滥用行为.https://weblogs.asp.net/infinitiesloop/truly-understanding-viewstate
为了在MVC和WebForms之间进行有效比较,我们需要确保两个应用程序正确使用这些体系结构.
我的测试显示MVC上的req/sec增加了2到7倍,但这取决于你如何构建webforms应用程序.只需"hello world"文本,没有任何服务器端控制,mvc的速度提高约30-50%.
对我来说,MVC的真正"性能"改进是增加了应用程序的可测试表面.使用WebForms,很多应用程序很难测试.使用MVC,可测试的代码量基本上增加了一倍.基本上所有不易测试的是生成布局的代码.您的所有业务逻辑和数据访问逻辑(包括填充视图中使用的实际数据的逻辑)现在都可以进行测试.虽然我希望它的性能也更高 - 页面生命周期大大简化,更适合网络编程 - 即使它相同或稍慢,但从质量角度来看也值得转换.
我认为这里的问题是,无论ASP.Net MVC比旧webforms多快多少,它都不会有所作为,因为大部分时间都在数据库中.大多数情况下,您的Web服务器将占用0-10%的CPU使用率,只需等待您的数据库服务器.除非您的网站上获得了大量的点击,并且您的数据库非常快,否则您可能不会注意到很大的差异.
我可以找到的早期ASP.NET MVC开发的唯一具体数字是在这个论坛主题:
http://forums.asp.net/p/1231621/2224136.aspx
Rob Connery本人在某种程度上证实了ScottGu声称ASP.NET MVC每秒可以提供8000个请求的声明.
也许Jeff和他的工作人员可以从他们的网站开发中给出某种暗示.