Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在页面上启动一个大类是否会减慢速度?_Php_Class_Lines Of Code - Fatal编程技术网

Php 在页面上启动一个大类是否会减慢速度?

Php 在页面上启动一个大类是否会减慢速度?,php,class,lines-of-code,Php,Class,Lines Of Code,我正在编写一个类,这个类可能会有大约3000行代码 我想知道的是非常简单的,在每个页面的顶部启动这个类会降低页面的运行速度吗,即使只会使用一个/两个objects方法?如果我的服务器一天被访问几千次,它会给我的服务器带来更大的压力吗 如果是这样,我应该考虑创建扩展来处理每个方法,而不是将整个类放在一个文件中吗 已编辑 首先,为了纠正KingCrunch和Kenaniah的错误,这个类是针对我的API的,这意味着它包含了很多函数,用于检索网站和iPhone应用程序以及整个Facebook应用程序上

我正在编写一个类,这个类可能会有大约3000行代码

我想知道的是非常简单的,在每个页面的顶部启动这个类会降低页面的运行速度吗,即使只会使用一个/两个objects方法?如果我的服务器一天被访问几千次,它会给我的服务器带来更大的压力吗

如果是这样,我应该考虑创建扩展来处理每个方法,而不是将整个类放在一个文件中吗

已编辑

首先,为了纠正KingCrunch和Kenaniah的错误,这个类是针对我的API的,这意味着它包含了很多函数,用于检索网站和iPhone应用程序以及整个Facebook应用程序上显示的数据。因此,考虑到我们网站的规模和功能,3000行非常小,更不用说其中700多行是评论了。所以我可以向你们保证,没有设计缺陷,尽管可能存在结构缺陷,这就是为什么我要问这个问题

构造函数只是将默认值设置为定义的变量,仅此而已

我已经从零开始完全重写了这个文件,因此没有旧代码,我非常确信类中的方法尽可能地高效


我一直在监视我的服务器使用情况等,并使用apache ab工具模拟高流量,虽然我的内存使用率迅速上升,但似乎没有问题。

不,实例化一个由大量LOC组成的类不会自动降低速度

也就是说,除非您在构造函数中执行某些操作,但这取决于您在那里执行的操作,而不是类的大小

在每个页面的顶部启动这个类会降低页面的运行速度吗

它会添加到运行时吗?对当然没有什么是免费的。解析的每一行代码都有一些小的开销(不过,您可以通过像APC这样的操作码缓存消除大部分开销)。然而,我们谈论的可能是亚毫秒的开销。唯一可以确定的方法是自己对其进行分析

如果我的服务器一天被访问几千次,它会给我的服务器带来更大的压力吗


从个人经验来看,不是。但再一次,描述和测量你自己。您应该监视服务器上的基本性能指标(CPU使用率、平均负载等)。部署您的更改,并查看您的指标。

不,实际上它比将其拆分为多个文件要快

唯一的问题是,这通常会导致一大块代码,而且修改很难完成


编辑:如果所有行都可用,速度会更快。如果您有很多旧代码,您可能会考虑清理< /P> 3000个ROCs类听起来更像是一个设计缺陷,而不是一个性能问题。总之,是的,它会使它慢下来,因为它必须初始化该类。不过,它可能没有你想象的那么糟糕。听起来你可能想看看这个相关的问题:简短回答:是的。答案很长:有无限多的因素会减慢页面的速度。你在3000行代码中丢失的东西可以在别处弥补。3000行代码?你需要重构,因为你肯定做错了什么。为什么不把它分解成小块呢?取出常用函数并创建一个新类。。如果它们是依赖的,继承将有所帮助。因为你只使用了两种方法,如果你仔细看一看,重新设计你的第一部分,那就更好了,这取决于如果他需要3K线,并考虑把它分成多个类,他会一个接一个地把它们装入,这会减慢他的性能。YEP,包括十个300行文件是(有一点)。比包含一个3000行文件慢。同样,墙时间的实际差异可能很小,但是通过自动加载,可能不需要为每个请求加载每个“子类”,这也是使用APC的一个很好的理由