自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

PHP垃圾回收機(jī)制防止內(nèi)存溢出

開發(fā) 后端
PHP垃圾回收機(jī)制的目的就是為了在session文件過期以后自動銷毀刪除這些文件。我們需要詳細(xì)了解其原理,以便靈活運(yùn)用這個(gè)垃圾回收j機(jī)制。

PHP語言同其他語言一樣,具有垃圾回收機(jī)制。那么今天我們要為大家講解的內(nèi)容就是關(guān)于PHP垃圾回收機(jī)制的相關(guān)問題。希望對大家有所幫助。#t#

一、PHP 垃圾回收機(jī)制(Garbage Collector 簡稱GC)

在PHP中,沒有任何變量指向這個(gè)對象時(shí),這個(gè)對象就成為垃圾。PHP會將其在內(nèi)存中銷毀;這是PHP的GC垃圾處理機(jī)制,防止內(nèi)存溢出。

當(dāng)一個(gè)PHP線程結(jié)束時(shí),當(dāng)前占用的所有內(nèi)存空間都會被銷毀,當(dāng)前程序中所有對象同時(shí)被銷毀。GC進(jìn)程一般都跟著每起一個(gè)SESSION而開始運(yùn)行的.gc目的是為了在session文件過期以后自動銷毀刪除這些文件.

二、__destruct /unset

__destruct() 析構(gòu)函數(shù),是在垃圾對象被回收時(shí)執(zhí)行。
unset 銷毀的是指向?qū)ο蟮淖兞?,而不是這個(gè)對象。

三、 Session 與PHP垃圾回收機(jī)制

由于PHP的工作機(jī)制,它并沒有一個(gè)daemon線程來定期的掃描Session信息并判斷其是否失效,當(dāng)一個(gè)有效的請求發(fā)生時(shí),PHP 會根據(jù)全局變量 session.gc_probability和session.gc_divisor的值,來決定是否啟用一個(gè)GC, 在默認(rèn)情況下,session.gc_probability=1, session.gc_divisor =100也就是說有1%的可能性啟動GC(也就是說100個(gè)請求中只有一個(gè)gc會伴隨100個(gè)中的某個(gè)請求而啟動).

PHP垃圾回收機(jī)制的工作就是掃描所有的Session信息,用當(dāng)前時(shí)間減去session最后修改的時(shí)間,同session.gc_maxlifetime參數(shù)進(jìn)行比較,如果生存時(shí)間超過gc_maxlifetime(默認(rèn)24分鐘),就將該session刪除。
但是,如果你Web服務(wù)器有多個(gè)站點(diǎn),多個(gè)站點(diǎn)時(shí),GC處理session可能會出現(xiàn)意想不到的結(jié)果,原因就是:GC在工作時(shí),并不會區(qū)分不同站點(diǎn)的session.

那么這個(gè)時(shí)候怎么解決呢?

1. 修改session.save_path,或使用session_save_path()讓每個(gè)站點(diǎn)的session保存到一個(gè)專用目錄,
2. 提供GC的啟動率,自然,PHP垃圾回收機(jī)制的啟動率提高,系統(tǒng)的性能也會相應(yīng)減低,不推薦。
3. 在代碼中判斷當(dāng)前session的生存時(shí)間,利用session_destroy()刪除.

責(zé)任編輯:曹凱 來源: 百度博客
相關(guān)推薦

2017-03-03 09:26:48

PHP垃圾回收機(jī)制

2017-10-12 12:41:11

PHP圾回收機(jī)制變量容器

2010-09-26 16:42:04

JVM內(nèi)存組成JVM垃圾回收

2023-02-28 07:56:07

V8內(nèi)存管理

2010-09-25 15:33:19

JVM垃圾回收

2017-08-17 15:40:08

大數(shù)據(jù)Python垃圾回收機(jī)制

2009-06-23 14:15:00

Java垃圾回收

2021-11-05 15:23:20

JVM回收算法

2011-07-04 16:48:56

JAVA垃圾回收機(jī)制GC

2021-05-27 21:47:12

Python垃圾回收

2010-09-25 15:26:12

JVM垃圾回收

2010-09-16 15:10:24

JVM垃圾回收機(jī)制

2011-06-28 12:39:34

Java垃圾回收

2015-06-04 09:38:39

Java垃圾回收機(jī)

2017-06-12 17:38:32

Python垃圾回收引用

2013-04-01 10:07:19

Java內(nèi)存回收機(jī)制

2021-12-07 08:01:33

Javascript 垃圾回收機(jī)制前端

2010-10-13 10:24:38

垃圾回收機(jī)制JVMJava

2011-07-04 13:12:04

JavaScript

2011-01-18 14:06:58

JavaScriptweb
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號