php為單進程的,由apache代執行代

電腦雜談  發布時間:2021-03-12 05:06:17  來源:網絡整理

PHP是單個進程,由apache執行。對于每個請求,apache從進程池中取出進程,初始化數據結構,然后創建進程。

所有會話都共享變量共享,類似于會話的內容,即單例模式。默認是使用磁盤文件來實現會話管理

靜態變量,只能由一個請求共享,而不能由所有請求共享。

會話共享

因為每個請求都是由apache代表進程創建的,所以會話共享的問題是由會話共享引起的。 PHP使用文件機制來實現會話共享。

內存管理

像C語言一樣,它也具有相關功能

php生命周期

這是一張圖片的概述

PHP內存模型

Zend虛擬機

php的引擎是Zend虛擬機

Zend虛擬機類似于js虛擬機,感覺就像一個內容

運行過程

PHP內存模型

Zend與php之間的關系

Zend Technologies公司管理PHP的開發

內存泄漏

由于PHP是一種高級語言,因此它會自動管理內存,但是仍然會發生內存泄漏。

使用valgrind分析內存泄漏

php內存管理

分為三層:存儲層(存儲),堆層(堆)和接口層(emalloc / efree)

PHP內存模型

圖片

php由鏈管理。

圖片

PHP內存模型

每次通過數組指針到請求的內存空間時,定義一個數組指針

初始化單個請求時,內核將初始化free_buckets列表,該列表是一個數組指針,其中存儲雙向鏈接列表的頭和尾指針以實現內存管理

關于js內存

js內存使用原型鏈的方式,總有一個Windows節點,每次創建時,它將被安裝在Windows節點上

關于Java內存

前面的描述都是關于動態語言的存儲機制的?,F在,我將解釋靜態語言。以java為例。寫入每個Java文件之后,將編譯并生成類文件。類文件定義了存儲器的結構。使用load命令。加載到內存中,即內存結構是固定的。在操作過程中,當使用新命令時,將根據類文件定義的內存模型在jvm的虛擬機中創建相同的對象,并進行指向和計算。此時,本質是通過堆棧計算的

通過這種方式,靜態語言模擬了動態語言。

關于動態和靜態語言

可以計算出靜態語言定義的內存結構。

動態語言和原型鏈類型,只需加載它即可。

垃圾收集

以前,PHP只是用于垃圾收集的簡單引用計數方法。

不想看

以上是本文的全部內容。希望本文的內容對大家的學習或工作有所幫助,也希望大家能為您提供更多的支持。 Codenong

關注碼農網公眾號


本文來自電腦雜談,轉載請注明本文網址:
http://www.tjhwsrq.com/a/shoujiruanjian/article-363942-1.html

    相關閱讀
    發表評論  請自覺遵守互聯網相關的政策法規,嚴禁發布、暴力、反動的言論

    熱點圖片
    拼命載入中...
    欧洲熟妇牲交_亚洲国产在线2020最新_日本无吗无卡v免费清高清