#1 redguan
问这个问题,是因为我对OOP刚接触,不是太了解。
OOP的出现,很方便。
将某个类做成另一个类的子类,或者方法。调用非常方便。
$SS->db->pager->cache->sql
但是这样多次调用后。关系有点乱套了。
这个$SS 拥有DB数据库的方法,和资源。 而其它类同样也拥有。
dump($GLOBALS['G_SP']);
虽然我看到PHP对于资源是共享的。但这样会不会多重调用后,产生一个非常巨大的类而将性能突然间下降?
同理,当$GLOBALS['G_SP'] 这个变量比较大的时候,会不会产生这个原因?
PS:在WINDOWS下,当一个目录的文件数超过1万左右时,速度下降得非常快。当达到3万左右时,I/O操作基本被卡死。
2010-05-26 10:58:19
#2 jake
呵呵,要知道$GLOBALS['G_SP'] 有多大,直接serialize成字符串,保存字符串到文件就知道有多大了。通常不会大于1K(1024b),一般一个apache线程有20M左右的内存空间,所以问题不大,而且其他程序(DZ,WORDPRESS或是其他框架)也是一样,保存数据库链接或者配置的句柄,也是保存在内存里面。
OOP方面,SP已经尽可能地少多重继承,像model,model之下就是数据库驱动类,两层。和其他的OOP框架相差很大,某些OOP框架,一个抽象父类,model,数据库中间层,数据库驱动层,M部分就已经四层了,所以从这个角度来说,SP是比较节约资源的。
另外,从PHP5编译器的角度来说,对类的支持并非如楼主想象中那样呆板,而是非常的弹性和智能,它会动态处理类继承的问题,以保证使用极小的资源来达到类的功能。
2010-05-26 11:13:25