tft每日頭條

 > 職場

 > php垃圾回收有幾種方法

php垃圾回收有幾種方法

職場 更新时间:2025-02-12 18:17:31

ps:本篇内容包括精選面試題與知識篇。

PHP面試題關于PHP的垃圾回收機制,PHP的垃圾回收機制引用計數 (reference counting) GC 機制,PHP可以自動進行内存管理,清除不需要的對象,PHP面試題分享PHP關于垃圾回收機制的面試題:

★我的php學習交流社群——856460874。群内管理已準備好 整理好的BAT等一線大廠進階知識體系備好(相關學習資料以及筆面試題)歡迎獲取一起晉升=點擊加

面試題篇
  • 介紹一下PHP的垃圾回收機制

PHP使用了引用計數(reference counting)GC機制,同時使用根緩沖區機制,當php發現有存在循環引用的zval時,就會把其投入到根緩沖區,當根緩沖區達到配置文件中的指定數量後,就會進行垃圾回收,以此解決循環引用導緻的内存洩漏問題。

  • 1. 如果引用計數減少到零,所在變量容器将被清除(free),不屬于垃圾;
  • 2. 如果一個zval的引用計數減少後還大于0,那麼它會進入垃圾周期。其次,在一個垃圾周期中,通過檢查引用計數是否減1,并且檢查哪些變量容器的引用次數是零,來發現哪部分是垃圾。

每個對象都内含一個引用計數器refcount,每個reference連接到對象,計數器加1。當reference離開生存空間或被設為 NULL,計數器減1。當某個對象的引用計數器為零時,PHP知道你将不再需要使用這個對象,釋放其所占的内存空間。

  • 下列關于PHP垃圾回收的說法,錯誤的是?

A、開啟/關閉垃圾回收機制可以通過修改php配置實現

B、可以在程序中使用gc_enable() 和 gc_disable()開啟和關閉。

C、PHP中的垃圾回收機制,會大幅度提升系統性能。

D、開啟垃圾回收機制後,針對内存洩露的情況,可以節省大量的内存空間,但是由于垃圾回收算法運行耗費時間,開啟垃圾回收算法會增加腳本的執行時間。

參考答案:C答案解析:PHP中的垃圾回收機制,僅僅在循環回收算法确實運行時會有時間消耗上的增加。但是在平常的(更小的)腳本中應根本就沒有性能影響。

  • php垃圾回收機制的說法錯誤的是?

A、在一個垃圾周期中,通過檢查引用計數是否減1,并且檢查哪些變量容器的引用次數是零,來發現哪部分是垃圾

B、可以通過調用gc_enable() 和 gc_disable()函數來打開和關閉垃圾回收機制

C、通過清理未被使用的變量來節省内存的占用

D、php代碼執行完畢後會自動執行垃圾回收,所以不需要手動執行垃圾回收

參考答案:D答案解析:php一段代碼有可能要長時間執行,但若此期間有未引用的變量的話,就會占用内存的空間,導緻運行緩慢等問題

php垃圾回收有幾種方法(PHP的垃圾回收機制-PHP高級面試題)1

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关職場资讯推荐

热门職場资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved