php web开发的不足之一:无法常驻内存
生活随笔
收集整理的這篇文章主要介紹了
php web开发的不足之一:无法常驻内存
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
新手之見,若有那里說錯請高手指點(diǎn)。
一個網(wǎng)站的后臺若是純用php編寫,在用戶在每次訪問此網(wǎng)站時,后臺都會為此次訪問重新創(chuàng)建所有內(nèi)存。
前一段時間閑著沒事,準(zhǔn)備學(xué)一門web語言,借此了解web程序的運(yùn)作原理。在網(wǎng)上查了一些主流的web語言,得知php比java簡單,易上手,就選擇了學(xué)習(xí)php。在學(xué)習(xí)發(fā)現(xiàn)了php的一個問題,描述如下。
?? ?在網(wǎng)上搜“php的效率”時,看到了用php讀數(shù)據(jù)庫的實(shí)驗(yàn)。個人覺得這樣的實(shí)驗(yàn)對測php的效率沒有多大的意義。而且php與java的對比的最大區(qū)別不應(yīng)該是什么php簡單(其實(shí)php也不簡單)應(yīng)該是是否可以常駐內(nèi)存(java的servlet在第一個用戶訪問時實(shí)例化,以后在來新的用戶訪問不會重新實(shí)例化)。
一個網(wǎng)站的后臺若是純用php編寫,在用戶在每次訪問此網(wǎng)站時,后臺都會為此次訪問重新創(chuàng)建所有內(nèi)存。
前一段時間閑著沒事,準(zhǔn)備學(xué)一門web語言,借此了解web程序的運(yùn)作原理。在網(wǎng)上查了一些主流的web語言,得知php比java簡單,易上手,就選擇了學(xué)習(xí)php。在學(xué)習(xí)發(fā)現(xiàn)了php的一個問題,描述如下。
遇到問題:
?? ?在做一個個人的博客時,想要加載一些配置文件中的配置,這些配置是所有用戶通用的。我是這樣加載的,先創(chuàng)建一個字典,然后讀文件,將配置按key-value映射到字典中。問題來了,當(dāng)一個用戶到來時,整個php的后臺都會跑一邊,用戶離開時,為此用戶此次創(chuàng)建的內(nèi)存都會回收,包括配置用的字典。這與我們的設(shè)想相違背,我們的設(shè)想是,加載一次配置文件到字典中,以后每個用戶到來都直接使用此配置字典,而不用每次都去讀文件,但是php卻不能實(shí)現(xiàn)這一功能。?? ?后來查了很多網(wǎng)上的資料來解決這一問題,得知php無法常駐內(nèi)存。(驚訝!驚訝!)
???????
??????? 我們希望的形式:
?????
?
??????? php的工作形式:
???????
問題描述:
?? ?用戶在每次訪問php的后臺時,所有的內(nèi)存都必須新建,包括所有的類都必須重新實(shí)例化,所有的文件都必須重新讀取,所有的數(shù)組、字典都必須重新建立。這樣,php的網(wǎng)頁稍微做的大一些,怎么可能能反映的快?怎么可能能扛得住較多的用戶??? ?在網(wǎng)上搜“php的效率”時,看到了用php讀數(shù)據(jù)庫的實(shí)驗(yàn)。個人覺得這樣的實(shí)驗(yàn)對測php的效率沒有多大的意義。而且php與java的對比的最大區(qū)別不應(yīng)該是什么php簡單(其實(shí)php也不簡單)應(yīng)該是是否可以常駐內(nèi)存(java的servlet在第一個用戶訪問時實(shí)例化,以后在來新的用戶訪問不會重新實(shí)例化)。
其他的考慮:
?? ?基于php無法常駐內(nèi)存,php不應(yīng)該作為大型web應(yīng)用的后臺語言,只能作為后臺的輔助語言使用(如連接cgi)。
總結(jié)
以上是生活随笔為你收集整理的php web开发的不足之一:无法常驻内存的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装微软原版WinXP方法教程
- 下一篇: 基于TP3.2框架开发的最新V2.1.0