使用20K线单级时的"性能影响"

jbl*_*lue 10 php oop performance code-size

这个问题之前在这里被问过,但没有一个答案真的试图回答实际问题,所以我以不同的方式问它.是否加载单个类的20,000行,其中100个函数比任何方式都更加耗费资源,而不是将代码分解为每个函数较少的较小类,并根据需要加载这些较小的类?

sha*_*mar 6

脚本或类越大,每个实例使用的内存越多.开箱即用,PHP没有办法共享库和类的内存空间,因此为网站创建大量脚本并不是一个好主意.

典型的方法应该是将类分解为块,这样您只需要为每个脚本包含运行该脚本所需的实际内容.

此外,除非你有大量的流量,否则它不太可能导致性能问题 - 然后你可能比重构类更容易解决你的问题.

加载脚本时,需要一定量的内存来解析它.它越大,它需要的内存就越多.接下来,执行脚本本身,运行任何顶级代码(不在类或全局函数中).如果包含任何require/include语句,则会加载这些脚本(如有必要).如果它创建对象,则会占用更多内存.

但是,类的每个实例的大小仅受其存储的数据的影响.除了这个修正之外,这里的建议就是:根据职责划分你的课程.其原因还在于易于开发而不是性能.假设你有一个充满静态方法的怪物类.如果您的应用程序对每个请求使用大多数这些方法,则拆分它将没有性能优势,因为无论如何这两个脚本最终都会被加载.但是,如果您可以将方法分组到逻辑子系统中,它们将更容易理解和使用.