程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP 讀寫Cookie效率分析與性能優化

PHP 讀寫Cookie效率分析與性能優化

編輯:關於PHP編程

掌握PHP讀寫 Cookie的執行時間與效率問題,了解PHP讀寫Cookie對性能的影響,並在實際開發中合理的使用PHP讀寫Cookie,分析工具采用PEAR Benchmark_Iterate類,主要關注指標為PHP讀寫Cookie的程序執行時間。

目錄

一,什麼是PEAR與Benchmark類
二,為什麼要分析PHP讀寫Cookie情況
三,性能測試代碼
四,性能測試結果
五,性能測試總結
六,setcookie函數說明
七,附性能測試源代碼下載
參考資料

一,什麼是PEAR與Benchmark類

請參考PHP性能優化系列
第二期 PHP性能優化工具篇Benchmark類調試執行時間
第一期 PHP性能優化准備篇圖解PEAR安裝

二,為什麼要分析PHP讀寫Cookie情況

1,什麼是Cookie?
Cookie,指某些網站為了辨別用戶身份、進行session跟蹤而儲存在用戶本地終端上的數據。

2,PHP與Cookie
PHP通過內置函數setcookie()寫cookie,通過$_COOKIE全局變量讀cookie,在實際開發中,讀寫Cookie是與用戶交互最主要的方式之一,並且使用也非常頻繁,因些需要了解PHP在讀寫操作Cookie的性能與效率問題。

三,性能測試代碼

編寫三個函數,分別為寫cookie、讀cookie和讀寫cookie,代碼如下:

 代碼如下 復制代碼 <?php
require_once "Benchmark/Iterate.php";
$bench = new Benchmark_Iterate;
function set(){
    setcookie("TestCookie", time(), time()+3600, "/", "", 1);
}
function get(){
    return isset($_COOKIE['TestCookie']) ? $_COOKIE['TestCookie'] : '';
}
function cookie(){
    get();
    set();
}
$bench->run(50,"set");
//$bench->run(50,"get");
//$bench->run(50,"cookie");
$result = $bench->get();
?>

使用Benchmark_Iterate類工具分別調用各個函數50次獲取PHP讀寫Cookie的平均執行時間並生成圖表。

四,性能測試結果

1,PHP寫Cookie的執行時間

php-set-cookie
圖解:使用PHP內置函數setcookie()向客戶端發送一個 HTTP cookie,寫Cookie的執行時間 0.00072s左右 注s表示秒

2,PHP讀Cookie的執行時間
php-get-cookie

圖解:使用全局變量$_COOKIE獲取客戶端cookie值,讀Cookie的執行時間 0.00051s左右

3,PHP讀寫Cookie的執行時間
php-set-get-cookie
先讀取cookie值,然後再向客戶端發送一個 HTTP cookie,讀寫Cookie的執行時間 0.00088s左右

五,性能測試總結

通過折線圖可以清楚看到,setcookie() 函數向客戶端發送一個 HTTP cookie需要的執行時間大約是0.00072s左右,也就是0.7毫秒,PHP讀取Cookie的執行時間為0.00051s左右,也就是0.5毫秒,如果同時讀寫操作Cookie需要的執行時間為0.00088s,也就是0.8毫秒左右,這些操作在秒的時代基本上執行的時間非常短,但請不要小看這個值,正常的PHP內置函數執行的時間大約在0.3毫秒左右,相對而言讀寫Cookie的執行時間是比較耗時的,因此,在實際開發中要盡量少用這樣的函數,充分考慮讀寫Cookie的情況,特別是寫cookie的情況!

毫秒世界還在繼續,請關注下一期PHP性能優化系列。

六,setcookie函數說明

setcookie() 函數向客戶端發送一個 HTTP cookie。

 代碼如下 復制代碼

bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )

1,cookie 是由服務器發送到浏覽器的變量。
2,cookie 通常是服務器嵌入到用戶計算機中的小文本文件。每當計算機通過浏覽器請求一個頁面,就會發送這個 cookie。
3,cookie 的名稱指定為相同名稱的變量。例如,如果被發送的 cookie 名為 "name",會自動創建名為 $user 的變量,包含 cookie 的值。
4,必須在任何其他輸出發送前對 cookie 進行賦值。
5,如果成功,則該函數返回 true,否則返回 false。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved