這一篇是完結篇,要談最後一部分:調用 功能的設計。
先看源碼:

    function 開始($註記 = false){
        $this->調用 = array();
        $this->堆疊 = array();

HACGIS 發表在 痞客邦 留言(0) 人氣()

今天要談的是有關測試這個功能項目的解說,廢話不多說,來看源碼:


    private function &耗時(&$開始, &$結束){
        $耗時 = array();
        $次數 = count($開始);

HACGIS 發表在 痞客邦 留言(0) 人氣()

恩~感謝朋友們的關心,這幾天有點小感冒,不過總算把藍星侵略者143完食。
現在讓我們來看一下源碼解說,以下三個函數是時點這項功能相關的函數:


    function 時點($註記){
        $this->時點[$註記] = microtime(true);

HACGIS 發表在 痞客邦 留言(0) 人氣()

讓我們繼續之前的話題,上一次我說會考慮加入自動註記的功能,不過我考慮了一下,決定還是不要,因為我沒辦法假設每個出入口都會被設置進入與離開點,但是在下個版本,我還是會加上一個欄位「函數」,來標明這個時點是屬於哪個函數的,接下來讓我們來看看各項功能的成員函數的解說。

時點:
  • 時點($註記):設定某個時點。
  • 時差($開始, $結束):傳回兩個註記之間的時差。
  • &彙整:時點($表格 = false):將曾紀錄過的時點資訊傳回,若$表格 == true,則傳回HTML的表格資料。

測試:

HACGIS 發表在 痞客邦 留言(1) 人氣()

首先讓我來談一下,我改寫的這個量測類別與PEAR::Benchmark有何不同。
  1. 量測是一個單一且未繼承其他類別的單純類別,而Benchmark是繼承PEAR類別且根據功能拆分成三個小類別。
  2. 量測在輸出的部份僅輸出HTML,而Benchmark可選擇輸出HTML及Plain。
  3. 量測在輸出上交由其他的一般函數來處理,而Benchmark則交由成員函數來處理。
  4. 量測在計算上不考慮使用BCmath模組,而Benchmark則有。
  5. 量測在測試函數的方式上可選擇不同的參數傳遞方式,而Benchmark則僅有一種方式。
  6. 量測在調用函數的分析上考慮了多重出口的情況,而Benchmark不考慮。

大致上就如以上所述,接下來我先談一下量測這個類別與其他的程式有何不同,以及為何要如此設計的考量。

量測的類別通常使用於開發過程中,或是在維護階段尋找程式執行的瓶頸,幾乎不會被用在一般正在線上執行的系統中,所以我才會將三個功能全部放在一起。

HACGIS 發表在 痞客邦 留言(0) 人氣()