php文件是否完全用条件语句加载?


Does a php file get loaded entirely with conditional statements?

我想知道一个文件是否完全加载时,它包含条件语句。

假设我有一个大约有5000行代码的大文件(只是作为一个例子),但是一半的代码不会被执行,因为它是在一个条件语句中。加载文件的时间还会一样吗?

我认为不是,所以我也可以假设它通常是更快的代码分割成多个文件,让一个自动加载程序处理所需的文件?或者新的文件请求会再次拖慢整个过程吗?在这种情况下:当文件加载速度比带有条件语句的文件执行速度快时,边界在哪里?

回答问题的第一部分很简单:是的,文件被完整地加载以便解析。如果一半或全部的代码最终没有被执行,这并不重要。

第二部分更棘手。您谈论的是性能,但这个特定领域(试图通过优化包含的数量和大小来提取更多的完美)是相当高的成果。因此:

    你是否在做一些更简单的事情,比如设置资产缓存、操作码缓存等,从而耗尽了所有可能的性能?
  1. 我不可能为你回答这个问题;一个人需要真正的性能数据,只有你可以访问。

根据经验,我相信你在担心一些对你的底线影响很小的事情。不要再这样做了,只写好的、可维护的代码。按照您的喜好拆分源代码并使用自动加载器是一种很好的方法。

首先,过早优化:不要做。其次,如果你在else语句中有2500行,你真的应该拿起一本关于编写干净代码的书。

回答你的问题:整个文件必须被读取,以便它被解析,这是执行之前需要的。

为什么要这么想?安装APC扩展,PHP将在内存中保存编译后的代码。有一种方法可以配置它,这样它就可以缓存静态代码,甚至不需要触摸磁盘!但是,当您进行更改时,必须手动清除缓存。