新手之见,若有那里说错请高手指点。

一个网站的后台若是纯用php编写,在用户在每次访问此网站时,后台都会为此次访问重新创建所有内存。

前一段时间闲着没事,准备学一门web语言,借此了解web程序的运作原理。在网上查了一些主流的web语言,得知php比java简单,易上手,就选择了学习php。在学习发现了php的一个问题,描述如下。

遇到问题:

    在做一个个人的博客时,想要加载一些配置文件中的配置,这些配置是所有用户通用的。我是这样加载的,先创建一个字典,然后读文件,将配置按key-value映射到字典中。问题来了,当一个用户到来时,整个php的后台都会跑一边,用户离开时,为此用户此次创建的内存都会回收,包括配置用的字典。这与我们的设想相违背,我们的设想是,加载一次配置文件到字典中,以后每个用户到来都直接使用此配置字典,而不用每次都去读文件,但是php却不能实现这一功能。

    后来查了很多网上的资料来解决这一问题,得知php无法常驻内存。(惊讶!惊讶!)

       

        我们希望的形式:

     

 

        php的工作形式:

       

问题描述:

    用户在每次访问php的后台时,所有的内存都必须新建,包括所有的类都必须重新实例化,所有的文件都必须重新读取,所有的数组、字典都必须重新建立。这样,php的网页稍微做的大一些,怎么可能能反映的快?怎么可能能扛得住较多的用户?
    在网上搜“php的效率”时,看到了用php读数据库的实验。个人觉得这样的实验对测php的效率没有多大的意义。而且php与java的对比的最大区别不应该是什么php简单(其实php也不简单)应该是是否可以常驻内存(java的servlet在第一个用户访问时实例化,以后在来新的用户访问不会重新实例化)。

其他的考虑:

    基于php无法常驻内存,php不应该作为大型web应用的后台语言,只能作为后台的辅助语言使用(如连接cgi)。


更多推荐

php web开发的不足之一:无法常驻内存