PHP包括内存和内存

PHP包括内存和内存,php,memory-management,Php,Memory Management,我希望这不是一个完全愚蠢的问题。我已经找了很多答案,但我找不到(或识别)一个确切的答案 我知道PHP中的函数在实际运行之前是不会被解析的。因此,如果我有一个包含许多函数的大型类,其中只有一个需要一个大型include文件,那么如果我只在函数中包含“include file”(而不是在类文件的顶部),我是否有可能节省内存 我假设,即使这样做可以节省内存,它也只能在调用函数之前这样做,之后直到当前脚本停止运行才会释放内存 非常感谢, Rob是的,它会,但请确保该函数不依赖于父函数中包含的任何其他函数

我希望这不是一个完全愚蠢的问题。我已经找了很多答案,但我找不到(或识别)一个确切的答案

我知道PHP中的函数在实际运行之前是不会被解析的。因此,如果我有一个包含许多函数的大型类,其中只有一个需要一个大型include文件,那么如果我只在函数中包含“include file”(而不是在类文件的顶部),我是否有可能节省内存

我假设,即使这样做可以节省内存,它也只能在调用函数之前这样做,之后直到当前脚本停止运行才会释放内存

非常感谢,


Rob

是的,它会,但请确保该函数不依赖于父函数中包含的任何其他函数。内存消耗还取决于几个因素,从文件本身的大小到使用变量设置和适当的垃圾收集协议所需的虚拟内存量

如果函数在一个类中,则称为方法,它可能依赖于它的类来扩展另一个类

只是一些需要考虑的事情。始终包含最小值

我喜欢这句话:“让它工作,然后,如果需要的话,让它快速。”-一些好的程序员

在大多数情况下,您最好专注于良好的OOP结构和应用程序设计,而不是速度。如果您的服务器使用像Zend Optimizer这样的东西,将您的所有方法都放在一个文件中不会有任何区别,因为它都是预编译的,并存储在内存中。(比这更复杂,但您知道这一点)

您还可以在apache启动时加载所有包含文件。然后所有函数都加载到内存中。除非您希望在每次更改代码时重新启动Apache,否则您不会希望在开发时这样做。但如果在生产服务器上完成,则会产生巨大的差异。如果你真的想快速地完成任务,你可以在C++中编写代码,并将其加载到Apache的模块。
但是最后。。。你真的需要这样的速度吗?

除非你真的需要,否则不要在这种情况下节省内存,这样可以节省开发时间。内存通常很便宜,但开发/支持时间却不便宜。像或一样使用php操作码缓存,它将提高执行速度,因为所有文件都将预编译并存储在内存中。

您是否遇到函数声明的内存问题?没有。只关心遵循良好做法。感谢所有答案。好建议。