1. 程式人生 > >php的apc擴充套件淺析(二)

php的apc擴充套件淺析(二)

    “Runtime Settings”:這裡展示的是正在執行的apc的配置資訊,我們可以根據需求來調整apc引數,引數的設定在php.ini中進行。


    apc引數比較多,下面就幾個比較常用的引數做下說明:

    1  apc.cache_by_default和apc.filters:apc.cache_by_default,是否開啟系統快取,通常跟apc.filters結合使用,用來控制需要進行快取和不需要快取的php檔案。apc.filters引數的值是一個以逗號分隔的 POSIX 擴充套件正則表示式的列表,如果正則表示式的第一個字元為+,則匹配的檔案都會被快取,如果為-,則匹配的檔案都不會被快取。

    demo1:關閉系統快取,僅快取以a和b開頭的檔案,其他檔案不會被快取

  apc.cache_by_default = 0
  apc.filters=+a.*.php,+b.*.php

    demo2:開啟系統快取,不快取以a和b開頭的檔案,其他檔案將會被快取

  apc.cache_by_default = 1
  apc.filters = -a.*.php,-b.*.php

    2  apc.shm_size和apc.shm_segments:apc.shm_size,以 MB 為單位的每個共享記憶體塊的大小。系統快取和使用者快取共用,可以通過調整該值來改變apc的共享記憶體塊的大小。如果apc.shm_size的值已經設定為系統所能達到的最大值仍然不夠用的時候,我們就需要藉助apc.shm_segments,該選項的含義為編譯器快取要分配的共享記憶體塊的數目,我們可以通過調整該值來改變共享記憶體塊的數目(但是在測試的時候,該選項並未生效)。

    3  apc.stat:用於檢測指令碼是否更新,預設開啟,每次請求指令碼的時候都檢測指令碼是否更新,這樣做對效能有不利的影響,如果生產環境中的指令碼檔案並非頻繁更新,我們可以關閉它,這樣效能將會大幅提高,缺點就是指令碼更新的時候需要重啟web伺服器(如果是nginx,重啟php-fpm)使之生效。

    4  apc.ttl和apc.user_ttl:快取條目在緩衝區允許逗留的秒數。不同之處在於,apc.ttl針對的是系統快取,apc.user_ttl針對的是使用者快取。測試的時候這兩個選項並沒有很好的表現,例如設定值為10,按理說10秒如果沒有訪問快取條目,這些快取條目將會被清除,但是10秒過後這些條目卻仍然存在,並沒有被清除。

    5  apc.num_files_hint和apc.user_entries_hint:Web 伺服器上的被包含或被請求的不同原始檔的數目的大概估計,apc.num_files_hint針對系統快取,apc.user_entries_hint針對使用者快取。跟快取時間一樣,快取數量好像也沒什麼作用,例如數量設定為3,超過3個檔案仍會被快取,不知道為什麼。

    其他的引數不再做過多的介紹,關於快取時間和快取數量或許是開啟方式不對,總是不能得到預期的效果,如果有哪位對這幾個引數有深入的理解和研究,希望不吝賜教。

    小結:

    1  apc的官方手冊中明確說明,apc有兩個主要的配置選項,一個是分配多少記憶體給apc(選項apc.shm_size),一個是每次請求apc是否檢查檔案修改(選項apc.stat),可見這兩個選項對於apc來說至關重要,有時間可以重點研究下這兩項。

    2  apc.cache_by_default開啟和關閉僅會影響到系統快取,對於使用者快取無影響。

    3  apc的共享記憶體塊是系統快取和使用者快取共用的。

    4  apc 3.1.15-dev版本,php 5.5.10,作業系統centos6.5,設定apc.shm_segments的時候並未生效。

    5  apc快取滿的情況下系統快取和使用者快取表現不同,如果是系統快取檔案在請求的時候達到了快取上限,則apc會清除除了該請求的所有其他系統快取檔案,如果是使用者快取變數在請求的時候達到了快取上限,則會清除除了該請求變數外的所有其他使用者快取變數,也就是說系統快取和使用者快取之間不會相互影響。

相關推薦

php的apc擴充套件淺析

    “Runtime Settings”:這裡展示的是正在執行的apc的配置資訊,我們可以根據需求來調整apc引數,引數的設定在php.ini中進行。     apc引數比較多,下面就幾個比較常用的引數做下說明:     1  apc.cache_by_defau

DCOM分布式組件對象模型原理淺析

com dcom 組件技術 分布式系統 queryinterface函數 今天我們來分析QueryInterface函數。HRESULT CDictionary::QueryInterface(const IID& iid, void **ppv) { if(iid == IID

Android Hook框架adbi原始碼淺析

二、libbase 其實上面載入完SO庫後,hook的功能我們完全可以自己在動態庫中實現。而adbi作者為了方便我們使用,編寫了一個通用的hook框架工具即libbase庫。libbase依然在解決兩個問題:1.獲取要hook的目標函式地址;2.給函式打二進位制補丁即inline hook。 關於獲取ho

Flutter 擴充套件NestedScrollView 列表滾動同步解決

接著上篇,沒看上篇的小夥伴建議先看下上篇,免得斷片中。。 我繼續講下第2個問題的解決方案。 當在裡面放上tabview,並且tab是快取狀態的時候,會出現滾動會互相影響的問題 上篇我們說到 在我們的主角NestedScrollView當中,有2個ScrollController. class _Nes

地圖投影系列淺析_ 地理座標系

 3、地理座標系         地球的形狀與大小確定之後,還必須確定橢球體與大地水準面的相對關係,這項工作稱為橢球定位與定向。與大地水準面符合得最好的一個地球橢球體,稱為參考橢球體,是地球形體三級逼近。 &n

總結Spring框架擴充套件bean生命週期中的擴充套件持續更新中...

面向業務開發的時候,程式設計師需要明白業務的邏輯,並設計程式碼結構。而在進行中介軟體開發的時候,則需要明白框架的邏輯,進行開發。 所以要開發提供給spring的中介軟體,需要知道spring中有哪些擴充套件點,好在對應的地方插入我們的功能。 1. Spring容器初始化b

Java位元組碼淺析

英文原文連結,譯文連結,原文作者:James Bloom,譯者:有孚 條件語句 像if-else, switch這樣的流程控制的條件語句,是通過用一條指令來進行兩個值的比較,然後根據結果跳轉到另一條位元組碼來實現的。 迴圈語句包括for迴圈,while迴圈,它們的實現方式也很類似,但有一點不同

Android廣播機制實現原始碼淺析

緊接著上篇的分析,我們現在來分析一下處理廣播的程式碼流程,也就是在方法queue.scheduleBroadcastsLocked();之後的操作 這些方法在BroadcastQueue.java中。在這裡能看到我們常說的廣播超時,以及我們重寫onReceive什麼時候執行

tomcat原始碼淺析之server.xml的解析

server.xml的解析是使用Digester來解析的,Digester的詳細規則如下: Catalina.createstartdigester程式碼 protected Digester createSta

zookeeper原始碼淺析之Leader選擇

1.入口函式QuorumPeerMain主執行緒啟動 Quorumpeermain.runfromconfig()程式碼 public void runFromConfig(QuorumPeerConfig&n

RecyclerView與ListView對比淺析:View快取篇

(二)View快取篇 1. AbsListView(原始碼版本4.4) RecyclerBin是AbsListView中專門處理View快取的類,官方註釋中說明其存有兩組View——ActiveViews和ScrapViews,前者是當前Layout中正在顯示的View

ballerina 學習 三十一 擴充套件開發

上篇說了使用ballerina 語言開發擴充套件模組,對於註解型別的我們是需要使用java 語言進行 開發的 註解擴充套件外掛的使用 這個註解是呼叫方法之後,會生成一個文字檔案 import ballerina/http; import ballerinax/hello; @hell

dubbo原始碼淺析-標籤解析

前面瞭解了dubbo的外掛化機制之後,接下來進入正題,研究一下dubbo的核心原理,由於dubbo的功能配置較多,為了更高效的研讀程式碼,在閱讀的過程中儘量忽略一些細節,重點關注它的主幹流程,主幹瞭解清楚之後再去分析它的一些細節功能就更輕鬆了,否則容易陷入各種細

maven入門淺析-----maven整合eclipse、jboss

1、eclipse中整合maven 1.1修改eclipse中使用的maven版本 eclipse自帶了maven3.0.4,如果想使用最新的3.1.1,可以在eclipse -> window -> perferences -> Maven ->

php的apc擴充套件淺析

    好不容易在php5.5的情況下生成了apc.so擴充套件檔案,就迫不及待的想要測試下apc,有了apc.so檔案之後,讓php支援apc就輕而易舉了,開啟正在使用的配置檔案php.ini,只需要新增extension=apc.so,重啟web伺服器(如果使用ngin

php的apc擴充套件淺析

    在介紹“System Cache Entries”和“User Cache Entries”頁面之前,先回顧下(一)中提到了設定賬號和密碼,這個賬號密碼有什麼用呢?其實就是用於這兩個頁面的,當我們沒有登陸的時候,檢視“System Cache Entries”的時候

Linux Input子系統淺析-- 模擬tp上報鍵值【轉】

repo input 開啟 handle 工程 static 我們 pro kthread 轉自:https://blog.csdn.net/xiaopangzi313/article/details/52383226 版權聲明:本文為博主原創文章,未經博主允許不得轉載。

大話DI依賴注入+IOC控制反轉淺析.Net Core中的DI與IOC

      在上一篇文章中,我們聊了很多關於定義的方面,比較孤燥,下面我們結合.Net Core聊一下依賴注入&控制反轉。   三種物件生命週期       關於.Net Core中的容

Cocos2d-x學習筆記淺析動作類CCAction(1)

Cocos2d-x的動作類CCAction並不是一個在螢幕中顯示的物件,動作必須要依託於CCNode類及其子類的例項才能發揮作用。CCAction繼承於物件類CCObject,有三個子類:有限時間動作、跟隨、移動速度,其中有限時間動作子類CCActionInterVal會形成動畫過程。

TCP三次握手和四次揮手過程原理及擴充套件

【1】TCP如何保證可靠性傳輸? 在傳遞資料之前,會有三次握手來建立連線 應用資料被分割成TCP認為最合適的資料庫(按位元組編號,合理分片),這和UDP完全不同,應用程式產生的資料報長度保持不變。(將資料截斷為合理的長度) 當TCP發出一個段後,它啟動一個定時器,等待目