PHP 讀寫Cookie效率分析與效能最佳化

來源:互聯網
上載者:User

目錄

一,什麼是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內建函數setcookie()向用戶端發送一個 HTTP cookie,寫Cookie的執行時間 0.00072s左右 注s表示秒

2,PHP讀Cookie的執行時間


圖解:使用全域變數$_COOKIE擷取用戶端cookie值,讀Cookie的執行時間 0.00051s左右

3,PHP讀寫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。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.