2009-03-04 76 views
0

我正在Django上玩我的网站托管服务。哪个Web框架的开销最小?

我发现一个简单的Django页面,只有一些静态文本,并从我创建的一个非常简单的模板呈现,需要大量的时间来呈现。与静态HTML页面相比,我在加载时间差异上达到了〜2秒。请记住,这是一个简单的测试,没有什么复杂的。另外请注意,我的虚拟主机在共享服务器上(不是专用的),所以我可能会遇到一些CPU限制。

在我看来,要么:

  1. 我有一些基本的CGI /阿帕奇/ Django的配置错误
  2. Django的需要显著的开销,至少在这个特定的场景。

我发现#1不太可能,因为我跟着我的网站托管服务维基关于如何设置Django。所以我们留下了开销问题。

我的问题是,哪个Web框架最适合在网站托管在共享服务器上的情况下使用,并且CPU /内存开销必须保持最低?


编辑:似乎我的配置是我可能想要看的,也许以后我会打开一个关于如何最好地配置Django的问题。

现在,我将非常感谢您关于您的体验,一般来说,使用Web框架的答案,以及您在上述场景中表现最佳的那些答案。

+0

该框架是否需要用于Python? – 2009-03-04 20:17:56

回答

4

“我有一些基本的CGI/Apache/Django配置错误”

正确。

首先。 Django第一次返回一个页面,这是永久的。第一次请求会发生很多初始化。

二。你使用的具体配置。我们刚刚在守护进程模式下从mod_python切换到mod_wsgi,并对性能改变非常满意。

三。你使用的是哪个数据库?

四,你使用什么测试配置?

五。你使用的是什么缓存参数和反向代理?

赔率很好,你的配置有很大的自由度。


编辑

“那些你发现它是在性能方面最好的”的问题在很大程度上是无法回答。

http://wiki.python.org/moin/WebFrameworks

有几十个框架。很少有人能够检查超过几个人进行头对头的比较。

通过静态内容可以获得最佳性能。生成静态页面的Python应用程序(例如Jinja模板的集合)是最快的。

之后,很难说。即使http://werkzeug.pocoo.org/涉及一些处理开销,可能在上述情况下是不可接受的。 Python可能会很慢。

Django,经过一番努力,往往足够快。例如,与动态内容分开提供静态内容可能是一个巨大的加速。

由于Django自动执行的功能非常丰富,因此无需编写每一个小小的管理页面就可以获得巨大的胜利。

0

它可能都是。 Django确实有内置缓存的内容,这值得尝试。无论如何,任何非高速缓存的页面总会比静态文件花费更长的时间。在这两种情况下都必须读取一个文件,而在动态页面的情况下,它也必须被执行。然后,在这两种情况下,发送到客户端。

1

我想说,你的设置必须有些时髦,以获得如此大的性能差异。试试mod_wsgi(如果你还没有的话),并按照上面海报的优秀建议。如果Django真的在所有情况下都很慢,那么企业就无法将其用于生产应用程序。这很可能是而不是是Django,它将请求提升。一旦你有.pyc文件全部排序(自动生成字节码),那么执行应该相当快。

但是,如果你实际上并不需要所有的Django提供,那么为什么要使用它?我在相当大的生产应用程序中使用它,并且我们没有使用它的所有功能......如果你正在做相当简单的事情,你可能要考虑使用类似web.pyWerkzeug(或非Python-如果你愿意的话)。

1

像Django或Ruby on Rails这样的框架从现实世界的需求出发。不同的是,这些需求是不同的。

这是我的经验: 作为曾经的PHP程序员,我者优先CakePHP简单的东西,Symfony用于更高级的应用。我看了一下Ruby,但是那时文档被吸收了。现在我正在使用Django。 Django对我来说工作得很好。与Symfony相反,我觉得Django带来的灵活性较小,但更容易扩展。

另一种方法是使用“无边框” CherryPy

0

Definetely共享主机不运行重框架如Django的或CakePHP中的最佳选择。如果你负担得起,购买VPS。

至于性能,可能你的主机使用Python与mod-python,现在不建议这样做。 WSGI是Python动力webapps的首选标准。

1

我觉得主人可能是个问题。我在我的本地主机(Mac)上进行Django开发,它更好。我喜欢WebFaction的廉价托管和亚马逊ec2的优质托管。

该框架强大,它可以处理重度网站 - 不要迷恋那些东西。重要的是创建一个干净的产品,Django可以处理它。当您看到应用程序如何在野外处理时,大约需要执行一千个步骤,但现在,请相信我们,在耗尽一系列参数之前,您无需担心框架的固有速度,包括专门的VPS /实例,当你需要它时。

此外,在编辑之后 - 我个人认为性能不是编程中的主要问题。下面是关注的方面的问题:

  1. UI/UX效率
  2. UI/UX速度(应用程序缓存)
  3. 精心设计的模型/视图
  4. 优化系统的(n层体系结构等)过程(QA好,以减少部署失败/瓶颈)子系统(数据库等
  5. 优化
  6. 优化...)
  7. 硬件
  8. 框架内优化

不要用比较框架的速度浪费时间。他们的优势在于可扩展的代码,智能体系结构等...

在附注中,请勿使用框架进行新的WEB应用程序。对不起,我不能说得够大,但现在是绝对的要求。这甚至不是关于不使用一个的争论,只是使用哪一个。

我个人选择了Django,这很棒。但我不能确定地将其他人击倒。