说真的,我应该写糟糕的PHP代码吗?[已关闭]

我最近正在做一些PHP工作,在我见过的所有代码中,人们倾向于使用很少的方法。(他们也倾向于使用很少的变量,但这是另一个问题。我想知道为什么会这样,我发现这个注释“具有一个参数和一个空函数体的函数调用与执行7-8个$localvar ++操作所需的时间大致相同。当然,类似的方法调用大约是15个$localvar++操作”。

即使 PHP 页面已被编译和缓存,情况也是如此吗?为了提高效率,我应该尽可能避免使用方法吗?我喜欢用方法编写组织良好,人类可读的代码,无论代码块在哪里重复。如果有必要在没有方法的情况下编写平面代码,是否有任何程序将“内联”方法主体?通过这种方式,我可以编写漂亮的代码,然后在部署之前将其丑陋起来。

顺便说一句,我一直在看的代码来自Joomla 1.5核心和几个WordPress插件,所以我假设他们是知道他们在做什么的人。

注意:我很高兴每个人都跳到这个问题上来谈论一般的优化,但实际上我们谈论的是解释型语言中的优化。至少一些我们谈论PHP的事实的暗示会很好。


答案 1

您需要多少“效率”?你测量过吗?过早优化是一切罪恶的根源,而没有测量的优化总是为时过早。

还要记住优化俱乐部的规则

  1. 优化俱乐部的第一条规则是,你不优化。
  2. 优化俱乐部的第二条规则是,没有测量就没有优化。
  3. 如果你的应用运行速度快于基础传输协议,则优化结束。
  4. 一次一个因素。
  5. 没有市场秩序,没有市场秩序时间表。
  6. 只要有必要,测试就会继续进行。
  7. 如果这是您在优化俱乐部的第一晚,您必须编写一个测试用例。

答案 2

我认为Joomla和Wordpress不是优秀PHP代码的最好例子,没有冒犯。我对从事这项工作的人没有任何个人反对意见,他们如何使人们拥有一个网站/博客是很好的,我知道很多人把所有的空闲时间都花在这两个项目上,但代码质量相当差(没有冒犯)。

如果您不相信我,请查看过去一年的安全公告;还假设您正在从两者中的任何一个中寻找性能,他们的代码也不擅长于此。所以它绝不是好的代码,但是Wordpress和Joomla在前端都表现出色 - 非常易于使用,人们得到一个网站并且可以做一些事情

这就是为什么他们如此成功,人们不是根据代码质量来选择他们,而是根据他们能够做的事情来选择他们。

为了回答你的性能问题,是的,所有好东西(函数,类等)确实会减慢你的应用程序的速度。所以我想如果你的应用程序/脚本都在一个文件中,那就这样吧。然后随意编写糟糕的PHP代码

一旦你扩展并开始复制代码,你应该考虑编写可维护代码带来的权衡(速度)。:-)

恕我直言,这种权衡相当小,因为有两件事:

  1. CPU便宜。
  2. 开发人员并不便宜。

当你需要在六个月后回到你的代码中时,想想如果那些纳米秒保存运行它,当你需要修复一个讨厌的错误时,仍然加起来(三到四次,因为重复的代码)。

你可以做各种各样的事情来使PHP运行得更快。通常人们推荐缓存,例如APC。APC真的很棒。它在后台为您运行各种优化,例如缓存PHP文件的字节码,并在用户空间中为您提供保存数据的功能。

例如,如果每次运行该脚本磁盘时解析配置文件,则 i/o 非常关键。使用简单的apc_store()apc_fetch(),您可以将解析的配置文件存储在基于文件或基于内存 (RAM) 的缓存中,并从那里检索它,直到缓存过期或删除。

当然,APC 并不是唯一的缓存。


推荐