Django和原始Python之间的性能

时间:2011-03-06 02:06:16

标签: python django

我想知道使用普通python文件制作网页和使用Django之间的性能差异。我只是想知道两者之间是否存在显着差异。感谢

4 个答案:

答案 0 :(得分:10)

Django是普通的Python。所以每个like语句或表达式的执行时间都是一样的。需要理解的是,在开发网络时,许多组件被组合在一起以提供若干优势:

  • 将常见任务移除到库中(身份验证,数据访问,模板化,路由)
  • 算法的正确性(cookies / sessions,crypto)
  • 减少自定义代码(由于库)直接影响错误计数,开发时间等
  • 遵循惯例可以改善团队合作,并且能够理解代码
  • 插件能力;创建或查找可以以最小集成成本使用的新功能块
  • 文档和帮助;很多人都了解技术并能够提供帮助(StackOverflow?)

现在,如果您要从头开始编写自己的网站,则需要自己实现至少几个组件。除非您花费大量时间开发网站,否则您也会失去上述大部分优惠。 Django和其他语言的其他Web框架旨在提供常见的东西,让您直接处理业务需求。

如果您在Web框架兴起之前曾在PHP中使用自定义会话代码和数据访问代码,那么您甚至不会想到与使您的工作变得有趣且易于使用的框架相关的性能成本。

现在,据说,Django配备了大量组件。它以这样的方式设计,大多数时候,它们不会影响你。尽管如此,仍然会为每个请求执行大量代码。如果您使用Django构建一个站点,并且性能不会削减它,您可以随意删除所有不需要的位。或者,您可以使用“纤细”的python框架。

真的,只需使用Django。这太棒了。它为许多站点提供了数百万倍于你(或我)构建的站点。有很多方法可以显着提高性能,例如利用缓存,而不是优化自定义中间件的循环。

答案 1 :(得分:4)

取决于您的“普通Python”如何制作网页。例如,如果它使用模板引擎,那么该引擎的性能将发挥巨大作用。如果它使用数据库,那么您使用的数据访问层(在该层的要求的上下文中)将会产生影响。

因此,问题变成了一个问题,即你的任意(现在没有说明)工具链选择是否具有比Django选择的更好的运行时性能。如果性能是您的首要目标,那么您当然应该能够做出更优化的选择。但是,就总体成本而言 - 即。为较慢的运行时选项购买更多的Web服务器,而为更多的工作开发选项购买更多的程序员 - 这个问题只是有太多的开放元素需要回答。

答案 2 :(得分:2)

过早优化是万恶之源。

如果您正在进行Web开发,Django会非常方便。如果你正在做认真的工作,那么加上一个拥有数百个常见任务插件的社区就是一个真正的好处。

即使您的“原始”实施速度更快,我也认为它不会快到严重影响您的Web应用程序。使用在适当的抽象级别工作的工具构建它,如果性能是一个问题,请测量它并找出瓶颈所在并应用优化。如果毕竟你发现Django创建的抽象减慢了你的应用程序(我不希望他们会这样做),你可以考虑转移到另一个框架或手工编写一些东西。您可能会发现,通过缓存,在多个服务器之间进行负载平衡以及执行“常用技巧”而不是重新实现Web框架本身,您可以获得性能提升。

答案 3 :(得分:1)

Django也是 普通Python

查看性能主要取决于代码的效率。

软件的大多数性能问题都源于效率低下的代码,而不是工具和语言的选择。所以实施很重要。 AFAIK Django非常出色,而且它的性能高于标准。