導航:首頁 > 編程語言 > php是不是解釋性語言

php是不是解釋性語言

發布時間:2024-11-27 12:48:24

『壹』 php軟體開發中如何提高項目的運行效率

PHP軟體開發中如何提高項目的運行效率

如何提高PHP程序執行效率?編程習慣分析,PHP程序原本是解釋性程序語言,其執行速度本來就不高,如果在日常開發中不注意編程習慣就很難提高其執行效率,下文從PHP編程和mysql數據效率兩個方面分析哪些提高其執行效率的要點PHP軟體開發中如何提高項目的運行效率
一、PHP提高效率的要點
1、如果能將類的方法定義成static,就盡量定義成static,它的速度會提升將近4倍。

2、$row[』id』] 的速度是$row[id]的7倍。

3、echo 比 print 快,並且使用echo的多重參數(譯註:指用逗號而不是句點)代替字元串連接,比如echo $str1,$str2。

4、在執行for循環之前確定最大循環數,不要每循環一次都計算最大值,最好運用foreach代替。

5、注銷那些不用的變數尤其是大數組,以便釋放內存。

6、盡量避免使用__get,__set,__autoload。

7、require_once()代價昂貴。

8、include文件時盡量使用絕對路徑,因為它避免了PHP去include_path里查找文件的速度,解析操作系統路徑所需的時間會更少。

9、如果你想知道腳本開始執行(譯註:即伺服器端收到客戶端請求)的時刻,使用$_SERVER[『REQUEST_TIME』]要好於time()。

10、函數代替正則表達式完成相同功能。

11、str_replace函數比preg_replace函數快,但strtr函數的效率是str_replace函數的四倍。

12、如果一個字元串替換函數,可接受數組或字元作為參數,並且參數長度不太長,那麼可以考慮額外寫一段替換代碼,使得每次傳遞參數是一個字元,而不是只寫一行代碼接受數組作為查詢和替換的參數。

13、使用選擇分支語句(譯註:即switch case)好於使用多個if,else if語句。

14、用@屏蔽錯誤消息的做法非常低效,極其低效。

15、打開apache的mod_deflate模塊,可以提高網頁的瀏覽速度。

16、資料庫連接當使用完畢時應關掉,不要用長連接。

17、錯誤消息代價昂貴。

18、在方法中遞增局部變數,速度是最快的。幾乎與在函數中調用局部變數的速度相當。

19、遞增一個全局變數要比遞增一個局部變數慢2倍。

20、遞增一個對象屬性(如:$this->prop++)要比遞增一個局部變數慢3倍。
二、MYSQL數據提高執行效率的要點

1. 為查詢緩存優化你的查詢

大多數的MySQL伺服器都開啟了查詢緩存。這是提高性最有效的方法之一,而且這是被MySQL的資料庫引擎處理的。當有很多相同的查詢被執行了多次的時候,這些查詢結果會被放到一個緩存中,這樣,後續的相同的查詢就不用操作表而直接訪問緩存結果了。

這里最主要的問題是,對於程序員來說,這個事情是很容易被忽略的。因為,我們某些查詢語句會讓MySQL不使用緩存。請看下面的示例:

// 查詢緩存不開啟 $r = mysql_query("SELECT username FROM user WHERE signup_date >= CURDATE()");

// 開啟查詢緩存 $today = date("Y-m-d");
$r = mysql_query("SELECT username FROM user WHERE signup_date >= '$today'");

上面兩條SQL語句的差別就是 CURDATE() ,MySQL的查詢緩存對這個函數不起作用。所以,像 NOW() 和 RAND() 或是其它的諸如此類的SQL函數都不會開啟查詢緩存,因為這些函數的返回是會不定的易變的。所以,你所需要的就是用一個變數來代替MySQL的函數,從而開啟緩存。


2. EXPLAIN 你的 SELECT 查詢

使用 EXPLAIN 關鍵字可以讓你知道MySQL是如何處理你的SQL語句的。這可以幫你分析你的查詢語句或是表結構的性能瓶頸。

EXPLAIN 的查詢結果還會告訴你你的索引主鍵被如何利用的,你的數據表是如何被搜索和排序的……等等,等等。

挑一個你的SELECT語句(推薦挑選那個最復雜的,有多表聯接的),把關鍵字EXPLAIN加到前面。你可以使用phpmyadmin來做這個事。然後,你會看到一張表格。下面的這個示例中,我們忘記加上了group_id索引,並且有表聯接:

18. 越小的列會越快

對於大多數的資料庫引擎來說,硬碟操作可能是最重大的瓶頸。所以,把你的數據變得緊湊會對這種情況非常有幫助,因為這減少了對硬碟的訪問。

參看 MySQL 的文檔 Storage Requirements 查看所有的數據類型。

如果一個表只會有幾列罷了(比如說字典表,配置表),那麼,我們就沒有理由使用 INT 來做主鍵,使用 MEDIUMINT, SMALLINT 或是更小的 TINYINT 會更經濟一些。如果你不需要記錄時間,使用 DATE 要比 DATETIME 好得多。

當然,你也需要留夠足夠的擴展空間,不然,你日後來干這個事,你會死的很難看,參看Slashdot的例子(2009年11月06 日),一個簡單的ALTER TABLE語句花了3個多小時,因為裡面有一千六百萬條數據。

19. 選擇正確的存儲引擎

在 MySQL 中有兩個存儲引擎 MyISAM 和 InnoDB,每個引擎都有利有弊。酷殼以前文章《MySQL: InnoDB 還是 MyISAM?》討論和這個事情。

MyISAM 適合於一些需要大量查詢的應用,但其對於有大量寫操作並不是很好。甚至你只是需要update一個欄位,整個表都會被鎖起來,而別的進程,就算是讀進程都無法操作直到讀操作完成。另外,MyISAM 對於 SELECT COUNT(*) 這類的計算是超快無比的。

InnoDB 的趨勢會是一個非常復雜的存儲引擎,對於一些小的應用,它會比 MyISAM 還慢。他是它支持「行鎖」 ,於是在寫操作比較多的時候,會更優秀。並且,他還支持更多的高級應用,比如:事務。

下面是MySQL的手冊

* target=」_blank」MyISAM Storage Engine
* InnoDB Storage Engine

20. 使用一個對象關系映射器(Object Relational Mapper)

使用 ORM (Object Relational Mapper),你能夠獲得可靠的性能增漲。一個ORM可以做的所有事情,也能被手動的編寫出來。但是,這需要一個高級專家。

ORM 的最重要的是「Lazy Loading」,也就是說,只有在需要的去取值的時候才會去真正的去做。但你也需要小心這種機制的副作用,因為這很有可能會因為要去創建很多很多小的查詢反而會降低性能。

ORM 還可以把你的SQL語句打包成一個事務,這會比單獨執行他們快得多得多。

『貳』 網站採用什麼語言好 最好語言是php么

最好是採用PHP語言。
php是網頁語言,用於嵌入html代碼中,實現較強的邏輯運算功能,是B/S結構的開發語言,用於網頁開發中,盡管其語法與C類似,但是它是解釋執行的,從編譯角度說,是解釋型語言(網頁開發語言都是解釋型的),也就是說,代碼寫好後,放到網頁伺服器上就可以直接運行,不必進行編譯。另外,它也是弱類型編程語言,使用變數時,不必注意變數的數據類型,而且變數使用前不必進行預先定義,可以直接使用。
C/C++是編譯型的語言,用於C/S架構中,源代碼需要編譯後,才能執行,C/C++常用於需要高速處理,高速執行的場合,如:數值計算、圖像處理、單機游戲、網路游戲的客戶端、驅動程序、嵌入式開發、操作系統,現在使用的許多單機和絕大部分的網路程序(主要是客戶端)都是用C/C++編寫的,在高級語言中,C的運行速度是最快的,在面向對象的編程語言中,C++是最快的。C/C++也是強類型語言,變數使用前必須預先定義,從這一點來說,變數的運行效率是高的,但是對於程序員來說,編程的負擔就加重了,不夠智能化,還有,使用變數時,要考慮變數的數據類型,不同類型的變數混合使用時,需要人工轉換,這比較麻煩,也容易犯編程錯誤。

『叄』 怎麼理解【前台PHP,中間件用java,底層用C/C++】

通常來說,做一個中小型網站或Web應用不會用多種服務端語言環境。
根據你所需要的網站需求決定要使用的技術架構。

首先PHP不是WEB前台技術(HTML+CSS+JavaScript才是,PHP與Web前端關系不大,這一點很多人都搞不清楚),PHP也是服務端的,說前台PHP個人感覺描述不當,你可以說表層PHP更准確點。PHP是解釋性語言,語言靈活、約束少、容錯高,即使代碼語法上寫錯了也未必影響整個網站的運行,適合實現低邏輯密度的業務處理。另外PHP的一些成熟框架也是支持插入中間件的。像博客、論壇、門戶網站等適合用PHP實現。

Java是一門比較健壯的語言環境,強類型、半編譯,可在運行時對自身代碼進行認知(反射),Java作為開源熱門,用Java編寫的實用工具如海洋般廣闊,所以利用Struts、Spring等成熟的JavaEE框架可以很方便地將這些工具作為中間層放置到Web應用當中。中間件通常是放置在原始服務端與客戶端之間的一個處理層,可能是個程序,也可能是一個伺服器(電腦),用於對原始數據進行進一步加工、篩選。Java十分適合製作業務邏輯比較復雜,對安全性、正確性與運行效率要求較高的網站或Web服務。像銀行系統、支付平台、在線聊天、網頁游戲等適合Java實現。

C/C++是目前大部分操作系統編寫時所用的語言,所以用C/C++可以很輕易地接觸到操作系統最底層的介面,C/C++很少用於網站或Web服務的開發。另外C/C++的編譯是平台相關的,同時也是平台最優化的,所以在復雜數據結構、演算法的處理能力上相較於其他語言有很大的優勢。像大型網游的伺服器可能由C/C++實現。

『肆』 php跟java有什麼區別

PHP和Java是兩種完全不同的編程語言,它們有以下幾個區別:

閱讀全文

與php是不是解釋性語言相關的資料

熱點內容
高角杯如何編程 瀏覽:1009
哪個app可以下載迷失島 瀏覽:27
100以內程序員鍵盤 瀏覽:910
調試助手源碼是什麼 瀏覽:599
程序員網優 瀏覽:461
有沒有極限壓縮方法 瀏覽:79
岳陽hypermill五軸編程 瀏覽:385
超級舒服的解壓神器 瀏覽:450
超短macd源碼 瀏覽:165
群暉怎麼設置用戶訪問指定文件夾 瀏覽:555
安卓怎麼測觸摸屏 瀏覽:595
javastring原理 瀏覽:317
如何關閉手機dhcp伺服器 瀏覽:985
php免費ide 瀏覽:202
程序員詞句 瀏覽:978
伺服器如何禁止某個ip段 瀏覽:331
便簽手機文件夾 瀏覽:770
gameloft的java游戲 瀏覽:112
神佑釋放怎麼轉伺服器 瀏覽:737
洋蔥app軟體怎麼登錄 瀏覽:792