2009-11-03 67 views
2

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

其实我不擅长Zend。我擅长从头开始编写PHP & JS。

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

在两者之间,使用aJax从Zend后端获取数据。最有可能的是REST。
任何人都有关于这种结构的建议?我想减少服务器的负载,也更容易管理代码,再加上更好的用户体验。

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

(POST几天后)

因此,基线PHP应该是更快,使用更少的数据传输(如果码正确),那么Zend的(或任何)框架,对不对?代码可重用性在这里不是一个大问题。 :)

+0

是不是这个编程相关,因此属于StackOverflow? – 2009-11-03 20:28:51

+0

即时通讯困惑,什么去stackoverflow,什么去超级用户现在...我张贴somethign在堆栈,并重定向到超级用户..哦... – Murvinlai 2009-11-03 20:34:02

+0

简而言之,StackOverflow是有关*创建*软件,超级用户是关于*使用*软件的问题。 – 2009-11-03 20:36:21

回答

1

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

1

在我看来,框架的基准是无用的。他们说了一些关于抽象情况的内容,但表现非常具有情境性。您应该测量您的应用程序并优化它。是的,如果您使用Zend Framework中的大量组件,那么您的应用程序可能会走多远,但是在您需要放弃PHP并将其写入C之前,您的应用程序的运行速度也有限制。有可能让Zend Framework在高负载的网站上执行得很好,但是你必须付出努力。就像你必须如果你不要使用它。

3

许多PHP开发人员受害的一件事是牺牲良好的体系结构和良好的原则,他们认为性能。

你可能会决定在你的代码中偷工减料,但请记住,“不成熟的优化是所有邪恶的根源”。所以,如果您需要尽早优化,请确保您确实在做一些有用的事情。

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

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

我个人的经验法则是,如果我只在一天中服务约100个请求,那么没有什么理由来优化任何事情。当应用程序开始感觉迟缓,如果它产生了足够的收入,也许我可以得到一个专用的服务器,如果没有,总是有解决方案,如apc,memcached,beanstalkd等。

+1

“我们应该忘记小效率,大约97%的时间:不成熟的优化是万恶之源。”唐纳德克努斯。 – 2009-11-04 12:50:34

+0

谢谢。我们的游戏已经过测试。性能确实是一个问题。特别是当我们在云端时。每个字节计数为$。日常需求量超过10万。 – Murvinlai 2009-11-04 13:36:53

2

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

如果你有很多时间并没有很多钱,那就用原始的PHP开发吧。如果您没有足够的时间和金钱,就可以以最快速度进行开发,而不考虑性能......您可以随时添加硬件。如果你在两者之间徘徊,平衡它,如果你觉得合适的话。

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