【问题标题】:Framework Comparison and Overhead框架比较和开销
【发布时间】:2010-12-12 19:17:03
【问题描述】:

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

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

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

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

如果有人有好主意,不胜感激。 :)

(几天后发布)

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

【问题讨论】:

  • 这不是编程相关的,因此属于 StackOverflow 吗?
  • 我很困惑 stackoverflow 的内容,现在超级用户的内容......我在堆栈中发布了一些东西,然后重定向到超级用户......哦,好吧......
  • 简而言之,StackOverflow 是针对创建软件的问题,SuperUser 是针对使用软件的问题。
  • 这是一个真正的灰色地带,关于 SDK(如 Zend Framework)的问题可能与使用软件和创建软件有关.

标签: php performance zend-framework architecture


【解决方案1】:

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

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

尽管我不喜欢它,但 CakePHP 的开发速度比 ZF 快,所以它非常适合时间紧迫的工作。 CodeIgniter 比任何一个都快,但没有那么多内置功能,因此它更接近于性能目标,而无需使用原始 PHP。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      许多 php 开发人员成为受害者的一件事是牺牲良好的架构和合理的原则来换取他们认为的性能。

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

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

      话虽如此,我认为您要查找的不是 ZF 性能的统计数据,而是有关如何使用它设置您的应用程序的建议。具体来说,我建议您为 ajax 请求创建一个专用的、非常轻便的引导程序。在 ajax 中,您通常只需要一些最低限度的先决条件,然后再放入控制器中。对于非ajax请求,使用推荐的架构(bootstrap、前端控制器+插件、控制器+助手、模型+视图+助手)正常设置。

      我个人的经验法则是,如果我每天只处理大约 100 个请求,那么就没有什么理由优化任何东西。当应用开始感觉卡顿时,如果它产生了足够的收入,也许我可以得到一个专用的服务器,如果没有,总有诸如 apc、memcached、beanstalkd 之类的解决方案。

      【讨论】:

      • “我们应该忘记小的效率,比如说大约 97% 的时间:过早的优化是万恶之源。”唐纳德·克努斯。
      • 谢谢。我们的游戏已经发布了测试版。性能确实是一个问题。尤其是当我们在云中时。每个字节都计入 $。每日requet超过100,000。
      【解决方案4】:

      在我看来,框架的基准是没有用的。他们说的是抽象的情况,但表演是非常情境化的。您应该测量您的应用程序并对其进行优化。是的,如果您使用 Zend Framework 中的大量组件,您可以使应用程序运行多远可能会受到限制,但是在您需要放弃 PHP 并用 C 编写应用程序之前,您的应用程序可以运行多快也存在限制。可以使 Zend Framework 在高负载站点上正常运行,但您必须为此付出努力。就像你必须使用它一样。

      【讨论】:

        【解决方案5】:

        这就是您要查找的内容:PHP framework comparison benchmarks

        【讨论】:

          猜你喜欢
          • 2011-04-26
          • 2014-02-07
          • 2011-11-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多