Rumah pembangunan bahagian belakang tutorial php 采用PEAR来缓冲PHP程序_PHP

采用PEAR来缓冲PHP程序_PHP

Jun 01, 2016 pm 12:38 PM
pear fungsi bekas program penampan guna

PHP 世界中缓冲是一个热门的话题,因为 PHP 产生的动态页面,每次用户请求都需要重新计算,不论请求的结果是否一样,同时,PHP 每次都会编译一次脚本。这样的超负荷运转对一个流量很高的网站来说肯定难以忍受。幸运的是, Web 的结果可以缓冲,而不需要重新运行和编译脚本,商品化的产品像 ZendCache 或者开源的 Alternate PHP Cache都提供了把 PHP 脚本编译为字节代码并缓冲的办法。

PEAR 的缓冲包提供了缓冲动态内容,数据库查询和 PHP 函数调用的框架。

就像 Perl 有 CPAN, TeX 有 CTAN,PHP 也有自己的中心资源库,存放类,库和模块。这个库称为 PEAR(PHP Extension and Add-On Repository)。

本文假设你已经安装了 PEAR 环境,如果没有的话,可以去 PHP 网站下载。


PEAR 的缓冲包包含一个总体的缓冲类和几个特别的子类。缓冲类使用容器类来存贮和管理缓冲数据。

下面是 PEAR 缓冲当前所包含的容器,以及各自的参数:

file -- file 容器在文件系统存储了缓冲的数据,是最快的容器。

cache_dir -- 这是容器存储文件的目录。

filename_prefix -- 缓冲文件的前缀,例如:"cache_"。

shm -- shm 容器把缓冲数据放入共享内存,基准测试显示,目前的实现下,这个容器的速度要比文件容器慢。

shm_key -- 共享内存使用的键值。

shm_perm -- 使用共享内存数据段的权限。

shm_size -- 分配共享内存的大小。

sem_key -- 信号灯的键值。

sem_perm -- 信号灯的权限。

db -- PEAR 的数据库抽象层。

dsn -- 数据库连接的 DSN 。可以参考 PEAR 的 DB 文档。

cache_table -- 表的名字。

phplib -- phplib 容器使用数据库抽象层存储缓冲。

db_class

db_file

db_path

local_file

local_path

ext/dbx -- PHP 的数据库抽象层扩展,如果像把缓冲存入数据库,可以采用这个容器。

module

host

db

username

password

cache_table

persistent

使用 PEAR Cache 所得到的性能提升取决于你所选择的缓冲容器,例如,把数据库的结果再次存入数据库缓冲中就显得毫无意义。

PEAR Cache 的函数缓冲模块能把任何函数或者方法的结果缓冲,不论是 PHP 的内置函数还是用户自定义函数,他缺省采用文件容器,把缓冲数据放入到一个叫做
function_cache 的目录。


Cache_Function 类的构造器可以有三个可选的参数:

$container :缓冲容器的名字。

$container_options :缓冲容器的数组参数。

$expires:缓冲对象过期的时间(秒数)。

普通的函数调用采用 Cache_Function 类的 call() 方法时,就能触发缓冲。调用 call() 很容易,的一个参数是函数的名字,然后是函数的参数,第二个参数是要调用函数中的第一个,依此类推,我们来看例子:

例 1: 缓冲函数和方法的调用

// 调用 PEAR Cache 的函数缓冲。

require_once ’Cache/Function.php’;

// 定义一些类和函数。

class foo {
function bar($test) {
echo "foo::bar($test)
";
}
}

class bar {
function foobar($object) {
echo ’$’.$object.’->foobar(’.$object.’)
’;
}
}

$bar = new bar;

function foobar() {
echo ’foobar()’;
}

// 取得 Cache_Function 对象

$cache = new Cache_Function();

// 对 foo 类的静态函数 bar() 作缓冲(foo::bar())。
$cache->call(’foo::bar’, ’test’);

// $bar->foobar()
$cache->call(’bar->foobar’, ’bar’);

$cache->call(’foobar’);
?>





下面我们采用 Cache_Output 来把输出作缓冲:

例子 2: 缓冲脚本的输出

// 加载 PEAR Cache 的输出缓冲

require_once ’Cache/Output.php’;

$cache = new Cache_Output(’file’, array(’cache_dir’ => ’.’) );

// 计算要缓冲页面的标记,我们假定页面的缓冲取决于
// URL, HTTP GET 和 POST 变量以及 cookies。

$cache_id = $cache->generateID(array(’url’ => $REQUEST_URI, ’post’ => $HTTP_POST_VARS, ’cookies’ => $HTTP_COOKIE_VARS) );

// 查询缓冲

if ($content = $cache->start($cache_id)) {

// 缓冲命中
echo $content;
die();
}

// 缓冲丢失

// -- 在这里插入内容产生代码 --

// 把页面存入缓冲
echo $cache->end();
?>



利用 Cache_Output 类,很容易把一个动态的数据库驱动的网站应用转化为静态,从而极大的提升站点的性能。

越来越多的站点在采用 GZIP 压缩 HTML 内容,这样减少了服务器的带宽消耗,对于使用 Modem 上网的用户来说也能受益不少。

Cache_OutputCompression 扩展了 Cache_Output 类的功能,他把 GZIP 压缩的 HTML 内容进行缓冲,从而节省了 CPU 压缩的时间。

待续...
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apl jam tiada dalam iPhone: Cara membetulkannya Apl jam tiada dalam iPhone: Cara membetulkannya May 03, 2024 pm 09:19 PM

Adakah apl jam hilang dari telefon anda? Tarikh dan masa masih akan dipaparkan pada bar status iPhone anda. Walau bagaimanapun, tanpa apl Jam, anda tidak akan dapat menggunakan jam dunia, jam randik, jam penggera dan banyak ciri lain. Oleh itu, membetulkan apl jam yang hilang hendaklah berada di bahagian atas senarai tugasan anda. Penyelesaian ini boleh membantu anda menyelesaikan isu ini. Betulkan 1 – Letakkan Apl Jam Jika anda tersilap mengalih keluar apl Jam daripada skrin utama anda, anda boleh meletakkan semula apl Jam pada tempatnya. Langkah 1 – Buka kunci iPhone anda dan mula meleret ke kiri sehingga anda mencapai halaman Pustaka Apl. Langkah 2 – Seterusnya, cari "jam" dalam kotak carian. Langkah 3 – Apabila anda melihat "Jam" di bawah dalam hasil carian, tekan dan tahan dan

Tidak boleh membenarkan akses kepada kamera dan mikrofon dalam iPhone Tidak boleh membenarkan akses kepada kamera dan mikrofon dalam iPhone Apr 23, 2024 am 11:13 AM

Adakah anda mendapat "Tidak dapat membenarkan akses kepada kamera dan mikrofon" apabila cuba menggunakan apl itu? Biasanya, anda memberikan kebenaran kamera dan mikrofon kepada orang tertentu berdasarkan keperluan untuk disediakan. Walau bagaimanapun, jika anda menafikan kebenaran, kamera dan mikrofon tidak akan berfungsi dan sebaliknya akan memaparkan mesej ralat ini. Menyelesaikan masalah ini adalah sangat asas dan anda boleh melakukannya dalam satu atau dua minit. Betulkan 1 – Sediakan Kebenaran Kamera, Mikrofon Anda boleh memberikan kebenaran kamera dan mikrofon yang diperlukan secara terus dalam tetapan. Langkah 1 – Pergi ke tab Tetapan. Langkah 2 – Buka panel Privasi & Keselamatan. Langkah 3 – Hidupkan kebenaran "Kamera" di sana. Langkah 4 – Di dalam, anda akan menemui senarai apl yang telah meminta kebenaran untuk kamera telefon anda. Langkah 5 – Buka "Kamera" apl yang ditentukan

Petua untuk mencipta fungsi baharu secara dinamik dalam fungsi golang Petua untuk mencipta fungsi baharu secara dinamik dalam fungsi golang Apr 25, 2024 pm 02:39 PM

Bahasa Go menyediakan dua teknologi penciptaan fungsi dinamik: penutupan dan refleksi. penutupan membenarkan akses kepada pembolehubah dalam skop penutupan, dan refleksi boleh mencipta fungsi baharu menggunakan fungsi FuncOf. Teknologi ini berguna dalam menyesuaikan penghala HTTP, melaksanakan sistem yang sangat boleh disesuaikan dan membina komponen boleh pasang.

Pertimbangan untuk susunan parameter dalam penamaan fungsi C++ Pertimbangan untuk susunan parameter dalam penamaan fungsi C++ Apr 24, 2024 pm 04:21 PM

Dalam penamaan fungsi C++, adalah penting untuk mempertimbangkan susunan parameter untuk meningkatkan kebolehbacaan, mengurangkan ralat dan memudahkan pemfaktoran semula. Konvensyen susunan parameter biasa termasuk: tindakan-objek, objek-tindakan, makna semantik dan pematuhan perpustakaan standard. Susunan optimum bergantung pada tujuan fungsi, jenis parameter, kemungkinan kekeliruan dan konvensyen bahasa.

Bagaimana untuk menulis fungsi yang cekap dan boleh diselenggara di Jawa? Bagaimana untuk menulis fungsi yang cekap dan boleh diselenggara di Jawa? Apr 24, 2024 am 11:33 AM

Kunci untuk menulis fungsi Java yang cekap dan boleh diselenggara ialah: pastikan ia mudah. Gunakan penamaan yang bermakna. Mengendalikan situasi khas. Gunakan keterlihatan yang sesuai.

Koleksi lengkap formula fungsi excel Koleksi lengkap formula fungsi excel May 07, 2024 pm 12:04 PM

1. Fungsi SUM digunakan untuk menjumlahkan nombor dalam lajur atau sekumpulan sel, contohnya: =SUM(A1:J10). 2. Fungsi AVERAGE digunakan untuk mengira purata nombor dalam lajur atau sekumpulan sel, contohnya: =AVERAGE(A1:A10). 3. Fungsi COUNT, digunakan untuk mengira bilangan nombor atau teks dalam lajur atau sekumpulan sel, contohnya: =COUNT(A1:A10) 4. Fungsi IF, digunakan untuk membuat pertimbangan logik berdasarkan syarat yang ditentukan dan mengembalikan hasil yang sepadan.

Perbandingan kelebihan dan kekurangan parameter lalai fungsi C++ dan parameter pembolehubah Perbandingan kelebihan dan kekurangan parameter lalai fungsi C++ dan parameter pembolehubah Apr 21, 2024 am 10:21 AM

Kelebihan parameter lalai dalam fungsi C++ termasuk memudahkan panggilan, meningkatkan kebolehbacaan dan mengelakkan ralat. Kelemahannya ialah fleksibiliti terhad dan sekatan penamaan. Kelebihan parameter variadic termasuk fleksibiliti tanpa had dan pengikatan dinamik. Kelemahan termasuk kerumitan yang lebih besar, penukaran jenis tersirat dan kesukaran dalam penyahpepijatan.

Apakah perbezaan antara fungsi PHP tersuai dan fungsi yang telah ditetapkan? Apakah perbezaan antara fungsi PHP tersuai dan fungsi yang telah ditetapkan? Apr 22, 2024 pm 02:21 PM

Perbezaan antara fungsi PHP tersuai dan fungsi yang dipratentukan ialah: Skop: Fungsi tersuai terhad kepada skop definisinya, manakala fungsi yang dipratentukan boleh diakses di seluruh skrip. Cara mentakrifkan: Fungsi tersuai ditakrifkan menggunakan kata kunci fungsi, manakala fungsi yang dipratakrifkan ditakrifkan oleh kernel PHP. Lulus parameter: Fungsi tersuai menerima parameter, manakala fungsi yang dipratentukan mungkin tidak memerlukan parameter. Kebolehlanjutan: Fungsi tersuai boleh dibuat mengikut keperluan, manakala fungsi yang dipratentukan terbina dalam dan tidak boleh diubah suai.

See all articles