Dan*_*ark 18 php optimization translation code-generation
我最近正在做一些PHP工作,在我看过的所有代码中,人们倾向于使用很少的方法.(他们也倾向于使用很少的变量,但这是另一个问题.)我想知道为什么会这样,我发现这个音符"一个带有一个参数的函数调用和一个空函数体大约需要7-8美元一样的时间localVar的++操作.类似的方法调用当然是约$ 15 localVar的操作++" 在这里.
这是真的吗,即使PHP页面已被编译和缓存?我应该尽可能避免使用方法来提高效率吗?我喜欢用重复代码块的方法编写组织良好,人类可读的代码.如果有必要在没有方法的情况下编写平面代码,是否有任何程序可以"内联"方法体?这样我就可以编写漂亮的代码,然后在部署之前将其弄糟.
顺便说一句,我一直在看的代码来自Joomla 1.5核心和几个WordPress插件,所以我认为他们是知道他们在做什么的人.
注意:我很高兴每个人都跳过这个问题来谈论一般的优化,但事实上我们正在谈论解释语言的优化.至少有一些暗示我们谈论PHP的事实会很好.
Til*_*ill 57
我认为Joomla和Wordpress不是优秀 PHP代码的最好例子,没有冒犯.我没有任何个人反对从事这项工作的人,并且很高兴他们如何让人们拥有一个网站/博客,而且我知道很多人将所有的空闲时间花在这两个项目中,但代码质量相当差(没有冒犯的意思).
如果您不相信我,请查看过去一年的安全公告; 也假设你正在寻找两者中的任何一个的表现,他们的代码也不擅长.所以它绝不是好的代码,但Wordpress和Joomla都在前端上表现出色 - 相当容易使用,人们可以获得一个网站并可以做些什么.
这就是他们如此成功的原因,人们不会根据代码质量而是根据他们使他们做的事情来选择它们.
要回答你的性能问题,是的,所有好的东西(函数,类等)都会减慢你的应用程序.所以我想如果你的应用程序/脚本都在一个文件中,那就这样吧.随后编写错误的PHP代码.
一旦扩展并开始复制代码,您应该考虑编写可维护代码带来的权衡(速度).:-)
恕我直言,由于两件事,这种折衷相当小:
当你需要在六个月后回到你的代码中时,想一想如果那些nano秒运行它,当你需要修复一个令人讨厌的bug(三四次,因为重复的代码)时仍然会加起来.
你可以做各种各样的事情来让PHP运行得更快.通常人们会推荐缓存,例如APC.APC非常棒.它在后台为您运行各种优化,例如缓存PHP文件的字节码,并在userland中为您提供保存数据的功能.
因此,例如,如果每次运行该脚本时解析配置文件,则i/o非常重要.使用简单的apc_store()和apc_fetch(),您可以将解析的配置文件存储在基于文件或基于内存的(RAM)缓存中,并从那里检索它,直到缓存过期或被删除.
当然,APC不是唯一的缓存.
在99%的情况下,您应该更好地担心代码可理解性.编写代码易于测试,理解和保持.
在性能确实至关重要的少数情况下,像PHP这样的脚本语言不是您的最佳选择.毕竟,PHP中的许多基本库函数都是用C语言编写的.
就个人而言,虽然可能有开销的函数调用,如果这意味着我写的代码一次(参数),然后用它在85米的地方,我WAY远一点,因为我可以在一个地方解决它.
脚本语言倾向于让人们认为"足够好"和"有效"是编码时要考虑的唯一标准.
特别是对于像PHP这样的快速解释器,我认为缺乏可读性/可维护性并不值得你从(也可能不会)获得它的效率.
关于WordPress的说明:我已经完成了很多WordPress代码的浏览.请不要假设那些人对好的代码有所了解.
| 归档时间: |
|
| 查看次数: |
4996 次 |
| 最近记录: |