【发布时间】:2011-03-02 12:24:32
【问题描述】:
一个 PHP 应用程序可以有太多的功能吗?执行大量 PHP 函数会占用内存和资源吗?我正在开发的 WordPress 主题有很多功能(在我完成时可能超过 100 个),我担心我可能有太多功能。
【问题讨论】:
一个 PHP 应用程序可以有太多的功能吗?执行大量 PHP 函数会占用内存和资源吗?我正在开发的 WordPress 主题有很多功能(在我完成时可能超过 100 个),我担心我可能有太多功能。
【问题讨论】:
PHP 的核心是over 3000 functions,所以不用担心添加太多。
【讨论】:
不,它不能。实际上,拥有许多功能是件好事,因为这意味着您已将代码划分为更易于管理的部分。一个好的规则是保持你的函数很小,让它们只做一件事。哦,记得给你的函数命名,这样函数名才能很好地描述函数的作用。
拥有很多方法会在执行时间上产生很小的开销,但与使用结构化代码所带来的好处相比,它是如此微不足道,所以我不会担心。
【讨论】:
我不会担心 100 个函数。那是很少的功能。
全局函数和方法被编译,存储在内存中,并在哈希表中建立索引(除了最近实现的缓存查找)。随着函数数量的增加,调用函数时性能不会下降,因为平均而言,访问哈希表是在恒定时间内完成的。
但是,解析脚本会产生更多开销,如果您实际调用所有这些函数,则需要编译它们。如果您使用操作码缓存,这不是真正的问题。也会有更多的内存开销,但通常情况下,内存在企业级 Web 服务器中不是问题,在这种情况下,尝试尽可能快地处理请求更合适,而不用过多关心内存。
还有风格问题。如果您有太多全局函数,请考虑是否:
最后,只有在分析应用程序并发现函数调用是 CPU 瓶颈而函数定义是内存瓶颈时,才需要担心这一点。
【讨论】:
我认为是的,一个项目可以有太多的功能。我不知道你是如何设置项目的,但听起来你有函数库。您可能希望在未来考虑面向对象的开发。这允许您将功能封装到对象中。因此,对象包含函数,并且它们对其他对象不可见(除非您希望它们可见)。这有助于大幅降低 API 污染。
对于你的记忆问题 - 我以前也担心这个,不要。良好的编程实践比速度更重要。无论如何,您甚至都不会注意到 Web 服务器上的差异。总是更喜欢可维护性而不是速度!
【讨论】:
只需编写代码即可完成工作。不要关心你的函数数量。
【讨论】:
100 个函数无需担心。如果您的代码很慢,您应该对其进行分析以明确找到慢的部分。
记住,过早的优化是邪恶的
【讨论】:
Remember, premature optimizations are evil mmh.. 有点不同意 ;) 好的规划和设计本身就是总优化的一半
即使许多功能会导致更多内存消耗,我还是建议您使用它们。清晰的结构比性能重要得多。
throwing hardware at it 可以提高性能,结构糟糕的应用程序很快就会变得非常难以维护。
顺便说一句:100 个函数什么都不是!
【讨论】: