首頁 PHP 函式庫 其它類別庫 一個快取PHP庫
一個快取PHP庫
<?php
namespace Doctrine\Common\Cache;
class ApcCache extends CacheProvider
{
    protected function doFetch($id)
    {
        return apc_fetch($id);
    }
    protected function doContains($id)
    {
        return apc_exists($id);
    }
    protected function doSave($id, $data, $lifeTime = 0)
    {
        return apc_store($id, $data, $lifeTime);
    }
    protected function doDelete($id)
    {
        // apc_delete returns false if the id does not exist
        return apc_delete($id) || ! apc_exists($id);
    }
    protected function doFlush()
    {
        return apc_clear_cache() && apc_clear_cache('user');
    }
    protected function doFetchMultiple(array $keys)
    {
        return apc_fetch($keys) ?: [];
    }
    protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
    {
        $result = apc_store($keysAndValues, null, $lifetime);
        return empty($result);
    }

快取是指可以進行高速數據交換的記憶體,它先於記憶體與CPU交換數據,因此速率很快。 L1 Cache(一級快取)是CPU第一層快取。內建的L1快取的容量和結構對CPU的效能影響較大,不過高速緩衝記憶體皆由靜態RAM組成,結構較複雜,在CPU管芯面積不能太大的情況下,L1級高速緩存的容量不可能做得太大。一般L1緩存的容量通常在32—256KB。 L2 Cache(二級緩存)是CPU的第二層高速緩存,分內部和外部兩種晶片。內部的晶片二級快取運作速率與主頻相同,而外部的二級快取則只有主頻的一半。 L2快取容量也會影響CPU的效能,原則是越大越好,一般桌上型電腦CPU的L2快取一般為128KB到2MB或更高,筆記型電腦、伺服器和工作站上用CPU的L2快取最高可達1MB- 3MB。

快取只是記憶體中少部分資料的複製品,所以CPU到快取中尋找資料時,也會出現找不到的情況(因為這些資料沒有從記憶體複製到快取中去),這時CPU還是會到記憶體去找數據,這樣系統的速率就慢下來了,不過CPU會把這些數據複製到快取中去,以便下次不要再到記憶體中去取。隨著時間的變化,被訪問得最頻繁的數據不是一成不變的,也就是說,剛才還不頻繁的數據,此時已經需要被頻繁的訪問,剛才還是最頻繁的數據,又不頻繁了,所以說快取中的資料要經常依照一定的演算法來更換,這樣才能確保快取中的資料是被存取最頻繁的。


免責聲明

本站所有資源皆由網友貢獻或各大下載網站轉載。請自行檢查軟體的完整性!本站所有資源僅供學習參考。請不要將它們用於商業目的。否則,一切後果都由您負責!如有侵權,請聯絡我們刪除。聯絡方式:admin@php.cn

相關文章

為什麼要從 Python 中的「object」繼承:一個類別繼承問題 為什麼要從 Python 中的「object」繼承:一個類別繼承問題

24 Dec 2024

了解 Python 類別繼承在 Python 中,類別可以從其他類別繼承,這使它們能夠存取父類別的屬性並...

為什麼無法在字段初始化程序中初始化非靜態字段? 為什麼無法在字段初始化程序中初始化非靜態字段?

03 Jan 2025

了解欄位初始化問題在您的程式碼中,您有一個儲存庫類別 (DinnerRepository) 和一個服務類別 (Service),它使用...

如何找到 PostgreSQL 中每個類別的最大日期 ID? 如何找到 PostgreSQL 中每個類別的最大日期 ID?

30 Dec 2024

為 PostgreSQL 中的每個類別選擇最大日期 ID 在包含一個包含有關類別、日期和 ID 的資料的表的資料庫中,它是...

如何在 Visual Studio 中偵錯 C# 類別庫專案? 如何在 Visual Studio 中偵錯 C# 類別庫專案?

07 Jan 2025

在 Visual Studio 中偵錯類別庫:解決「輸出類型錯誤」您在嘗試偵錯下載的類別庫時遇到錯誤...

理解 PHP 中「抽象類別」和「介面」之間的區別 理解 PHP 中「抽象類別」和「介面」之間的區別

03 Jan 2025

PHP中抽象類別和介面的區別 在 PHP 中,抽象類別和介面都用於定義其他類別遵循的結構,但它們具有不同的目的並且具有不同的特徵。理解什麼

如何最好地存取 C# 類別庫中的配置設定? 如何最好地存取 C# 類別庫中的配置設定?

19 Jan 2025

從類別庫中的設定檔讀取設定開發 C# 類別庫時,從設定檔中擷取設置,例如...

See all articles