框架比较和开销

时间:2009-11-03 20:25:35

标签: php performance zend-framework architecture

我正在使用Zend框架开发的Facebook游戏。现在我没有很多流量,已经看到了相当多的数据使用/ CPU时间。

实际上,我不擅长Zend。我擅长从头开始编写PHP和& JS。

所以,我很好奇Zend框架的性能。因为我正在考虑使用Zend作为管理数据/会话/逻辑的后端来重建应用程序。并使用JS(本机代码或JQuery)作为前端渲染UI并在客户端处理用户操作。

在两者之间,使用aJax从Zend后端获取数据..很可能是REST 有人对这种结构有什么建议吗?我想减少服务器负载,也更容易管理代码,以及更好的用户体验。

欣赏是否有人有好主意。 :)

(几天后发布)

所以,基线PHP应该更快并且使用更少的数据传输(如果代码正确)然后Zend(或任何)框架,对吧?代码重用性在这里不是一个大问题。 :)

5 个答案:

答案 0 :(得分:3)

许多PHP开发人员成为受害者的一件事就是牺牲良好的架构和声音原则来实现他们所认为的性能。

您可能决定在代码中偷工减料,但请记住,“过早优化是所有邪恶的根源”。因此,如果您需要尽早优化,请确保您实际上正在做一些有用的事情。

Zend库的设计考虑了最佳实践,而不一定是性能。理由是,有许多方法可以在不牺牲代码维护和可读性(缓存,负载平衡,硬件,队列管理等)的情况下加快速度。

话虽如此,我不认为你所寻找的是关于ZF性能的统计数据,而是关于如何使用它设置应用程序的建议。具体来说,我建议你为ajax请求创建一个专用的,非常轻的引导程序。在ajax中,在放入控制器之前,通常只需要一些最小的先决条件。对于非ajax请求,使用推荐的体系结构(引导程序,前端控制器+插件,控制器+帮助程序,模型+视图+帮助程序)正常设置它们。

我个人的经验法则是,如果我全天只提供大约100个请求,那么优化任何东西的理由都很少。当应用程序开始感觉迟钝时,如果它产生足够的收入,也许我可以得到一个专用服务器,如果没有,总有解决方案,如apc,memcached,beanstalkd等。

答案 1 :(得分:2)

以下是您要找的内容:PHP framework comparison benchmarks

答案 2 :(得分:2)

Zend Framework与原始PHP代码往往接近每秒1:500的请求比率。

如果您有很多时间而不是很多钱,请使用原始PHP进行开发。如果您没有足够的时间和足够的资金,可以在不考虑性能的情况下以最快的速度开发......您可以随时添加硬件。如果你介于两者之间,请按照你认为合适的方式进行平衡。

尽管我不喜欢它,CakePHP的开发速度比ZF快,所以它对于时间紧缩来说非常棒。 CodeIgniter比其中任何一个都快,但没有那么多的内置,所以它更接近性能的结束,而不需要原始的PHP。

答案 3 :(得分:1)

在我看来,框架的基准是无用的。他们谈到抽象情况,但表现非常具有情境性。您应该测量应用程序并对其进行优化。是的,如果您使用Zend Framework中的大量组件,可能会限制您的应用程序的运行距离,但是在您需要删除PHP并将其写入C之前,应用程序的运行速度也有限制。可以使Zend Framework在高负载站点上运行得很好,但是你必须付出努力。就像你使用它一样。

答案 4 :(得分:1)

如果你认为基于ZF的应用程序很慢,那么首先要做的只有一件事。测量它。存在各种工具,将Xdebug的分析输出显示哪些部分正在减慢过程,然后您可以采取一些措施来优化这些部分(例如更轻的初始化和/或一些缓存) 。一个很好的资源是Zend框架书籍survivethedeepend.com,“performance optimisation for ZF Apps”。