PHP擴展之APC——Alternative PHP Cache(可選PHP緩存)
該擴展的各個版本安裝包都在此處:?http://pecl.php.net/package/apc.
該PECL?擴展的?DLL?當(dāng)前不可用。
注意:?在Windows上,APC需要一個臨時目錄,并且Web服務(wù)器對這個目錄可寫,APC會檢測TMP,TEMP,USERPROFILE這些Windows的環(huán)境變量,如果這些都沒有,會檢查系統(tǒng)文件夾下的WINDOWS目錄。
這些函數(shù)的行為受?php.ini?中的設(shè)置影響。
盡管默認的 APC 設(shè)定對于大多數(shù)安裝已經(jīng)沒問題,但專業(yè)人員應(yīng)考慮調(diào)整以下參數(shù)。
APC有兩個主要的配置選項。第一,多少內(nèi)存將被分配給APC;第二,每次請求APC是否檢查文件修改。兩個ini選項分別控制這些設(shè)置apc.shm_size?和apc.stat。
一旦服務(wù)器運行起來了,?apc.php?腳本可以拷貝到一個可以通過瀏覽器訪問到的Web目錄中,通過瀏覽器訪問這個腳本會得到APC工作狀態(tài)的詳細分析,如果在PHP中啟用了GD擴展,它甚至?xí)@示一些有趣的圖表。當(dāng)然,首要的事情是要確保真的緩存了文件。 如果APC運行了,?緩存完全統(tǒng)計?數(shù)目 (在左上角)將顯示緩存的命中率并且清除在最后?apc.ttl?秒內(nèi)沒有被訪問的緩存。 這個數(shù)字使緩存的最小化的很好配置。如果緩存不斷的被填充和清除,這將影響緩存的效果和腳本的性能。減少這個數(shù)字的最好方式就是給APC分配足夠多的內(nèi)存。除此之外, 可以通過?apc.filters?緩存更少的腳本。
更多關(guān)于APC的介紹文章,可參考:可選PHP緩存APC淺析——安裝、配置及工作原理
APC函數(shù)apc_add?— 緩存一個變量到數(shù)據(jù)存儲apc_bin_dump?— Get a binary dump of the given files and user variablesapc_bin_dumpfile?— Output a binary dump of cached files and user variables to a fileapc_bin_load?— Load a binary dump into the APC file/user cacheapc_bin_loadfile?— Load a binary dump from a file into the APC file/user cacheapc_cache_info?— 從APC的數(shù)據(jù)存儲中獲取緩存信息apc_cas?— 更新舊值為新值apc_clear_cache?— 清除APC緩存apc_compile_file?— Stores a file in the bytecode cache, bypassing all filters.apc_dec?— 減少一個存儲數(shù)字apc_define_constants?— Defines a set of constants for retrieval and mass-definitionapc_delete_file?— 從字節(jié)碼中刪除文件apc_delete?— 從用戶緩存中刪除某個變量apc_exists?— 檢查APC中是否存在某個或者某些keyapc_fetch?— 從緩存中取出存儲的變量apc_inc?— 遞增一個儲存的數(shù)字apc_load_constants?— 從緩存中加載一系列常量apc_sma_info?— 取回APC的共享內(nèi)存分配信息apc_store?— 在數(shù)據(jù)存儲中緩存一個變量APCIterator類APCIterator?類使得遍歷大容量APC緩存更容易,這是很有幫助的因為它允許同時獲取已經(jīng)定義的每個被鎖定實例的條目數(shù),因此它釋放的其他活動的緩存鎖,而不是阻礙整個緩存以完成獲取100(默認)個緩存數(shù)據(jù)的迭代,在大緩存條目。 此外,使用正則匹配效率更高,因為它被改為C級別的實現(xiàn)。
方法列表APCIterator::__construct?— 構(gòu)造一個 APCIterator 迭代器對象APCIterator::current?— 獲取當(dāng)前項APCIterator::getTotalCount?— 獲取總數(shù)APCIterator::getTotalHits?— 獲取緩存命中數(shù)APCIterator::getTotalSize?— 獲取所有緩存的尺寸大小APCIterator::key?— Get iterator key獲取迭代器的鍵APCIterator::next?— 移到下一項APCIterator::rewind?— 倒退迭代器APCIterator::valid?— 檢查當(dāng)前位置是否有效相關(guān)文章:
