【问题标题】:Preformance difference between classes and just functions类和函数之间的性能差异
【发布时间】:2011-08-13 09:42:27
【问题描述】:

我正在用 PHP 编写一个网站,但我注意到页面加载需要 3-5 秒(从远程服务器),这是不可接受的。该软件依赖于大约 12 个类才能正常运行。我想知道如果我重写大多数类以仅使用常规 php 函数,我会获得多少性能提升。

感谢您的任何意见。

编辑:我主要依赖 Redis,并在这里和那里使用简单的 MySQL 查询。

【问题讨论】:

  • 可能不会有太大的不同。您可能希望使用 Xdebug 之类的工具来分析代码,以找出瓶颈所在。
  • 另一个错误的微优化案例:(基准测试。感到惊讶/纠正。学习。

标签: php


【解决方案1】:

函数或类应该几乎没有区别(完全可以忽略不计):这不是让您的网站/应用程序变慢的原因。


很难为您提供更多信息,因为我们不知道您的设置如何,但您可能想看看我发布到 this question 的答案:它包含一些有趣的想法,当涉及到表演时PHP 应用程序。


顺便说一句:12 节课真的不算多,如果可以的话……

【讨论】:

  • 感谢您的链接。这会有所帮助:)
【解决方案2】:

在过程式编程中重写所有应用程序可能是您做过的最糟糕的事情。面向对象编程不是为了提高性能,而是编写对程序员友好且易于维护的应用程序(等等)。

您不应该永远考虑重写 OO 应用程序程序。那不是目的。如果您曾经使用 OO 而不是过程编程有更大的资源消耗(这不太可能),您可能应该考虑更好地扩展应用程序。现在的硬件没那么贵。

另一方面,您的应用程序可能存在许多瓶颈,OO 甚至可能不在列表中。

您检查了吗:

  • 您的互联网连接?
  • 您的服务器的 Internet 连接?
  • 您的服务器 ping 丢失?
  • 您的服务器配置? (Apache/Nginx/Lighttpd 或其他)
  • 您的数据库服务器的配置?
  • 您的数据库查询?
  • 您的服务器负载?
  • 连接到 Redis 的时机?
  • 您的防火墙对 Redis 使用的端口的规则?
  • 您的 Redis 配置? (maxclients, timeout)

如果您对上述至少一个问题的回答,请务必检查,如果问题仍然存在,请告诉我!

【讨论】:

    【解决方案3】:

    这种差异可能甚至无法衡量。

    您的问题绝对不是您的代码本身,而是您访问数据库的方式。确保您的表被适当地索引,您将看到页面加载时间大幅下降。您可以使用EXPLAIN SELECT ... 获取有关查询实际运行方式以及其性能不佳的原因的更多信息。

    【讨论】:

      【解决方案4】:

      你不会发现函数和类之间有什么区别。

      很有可能,您的一个或多个类的编写效率低下,或者依赖于某些东西。示例可能包括在远程服务器上等待、图像处理、某些数据库(例如过载的数据库)或无数其他方法。您应该尝试分析您的代码以查看问题所在。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-19
        • 2017-01-10
        • 1970-01-01
        • 2023-02-07
        • 2010-11-21
        • 2012-05-26
        • 2013-09-02
        相关资源
        最近更新 更多