C# ASP.NET MVC3 outperforms Ruby on Rails 3, Django?

本文关键字:Rails Django on Ruby ASP NET MVC3 outperforms | 更新日期: 2023-09-27 17:54:51

我正在考虑为高性能web应用程序提供一个快速性能和可扩展的平台,该平台也大量使用数据库。在我看来,自然的方法是选择一些MVC框架,如Rails, . net MVC或Django。我已经有了Rails和。net的经验,但没有Python的经验。就我个人的测试而言,c# with . net MVC3在大多数情况下都优于Ruby on Rails 3(对于Rails,我使用了unicorn和nginx来处理http内容)。有人对此有什么看法吗,还是我的测试不正确?任何有数字和解释的例子都将受到高度赞赏。谢谢你!

C# ASP.NET MVC3 outperforms Ruby on Rails 3, Django?

在选择一个web框架时,性能不应该是一个决定因素,至少当你从这3个web框架中选择时不应该是这样,它们在战场上得到了真正的证明。

如果你只考虑语言的速度,c#——它是静态类型和JIT编译的,将永远是最快的。接下来是Python(特别是如果你在PyPy上运行Django——它也有JIT,但不是那么成熟),Ruby将是最慢的(它一直是最慢的,尽管它正在改进)。

除了语言之外,数据库本身也起着很大的作用,所以很大程度上取决于给定框架使用的ORM。同样,实体框架(您可能与ASP一起使用)。. NET MVC)将很难有效地使用,因为延迟加载在那里不是一种常见的做法,数据库模型通常是手工创建的。另一方面,在Django中,你用Python编写模型,这有时可能太通用了。

不要忘记,当DB扮演关键角色时,适当的缓存将始终是影响性能的关键因素。与ASP。. NET MVC、Django和RoR都是全栈框架,它们会给你更多开箱即用的选择,因为它们知道自己需要的关于模型的一切。

编辑:如果您想要纯语言速度比较,请查看http://shootout.alioth.debian.org/u32/benchmark.php?test=all〈csharp&lang2=yarv阅读所有的免责声明(这是在特定的解释器/编译器实现上运行的特定算法实现的基准测试,所以这只是这些实现的基准测试),但请记住,c#实现测试是开源的Mono版本,肯定比原始的MS Stack慢。因此,您可以看到的差异(c#实现比Ruby快79倍)可能会更大。

至少就Rails和Django而言,根据这些基准测试,后者明显更快。

与ASP。它看起来更像是某种阴谋,所以没有人真正尝试基准测试:)

Django有很多智能缓存机制。此外,它鼓励DRY,通常会导致代码更干净,更少的混乱,从而降低性能。配置你想要钩入每个请求进程的中间件也很容易。

所以我的论点不是Django一定比ASP快。. NET,而仅仅是人们写出更好的项目,最终产出更快。