php是一个由apache执行的进程,对于每个请求,apache从进程池中取出该进程,初始化数据结构,然后创建该进程。
所有会话都共享变量共享,类似于会话的内容,即单例模式。默认是使用磁盘文件来实现会话管理
静态变量,只能由一个请求共享,而不能由所有请求共享。
会话共享
因为每个请求都是由apache代表进程创建的,所以会话共享的问题是由会话共享引起的。 PHP使用文件机制来实现会话共享。
内存管理
像C语言一样,它也具有相关功能
php生命周期
这是一张图片的概述
8ce30202d81f00c37449068763d2be_1338x2269
Zend虚拟机
php的引擎是Zend虚拟机
Zend虚拟机类似于js虚拟机,感觉就像一个内容
运行过程
2019-05-04-00-05-49 ----
Zend与php之间的关系
Zend Technologies公司管理PHP开发
由于PHP是一种高级语言,因此它会自动管理内存,但是仍然会发生内存泄漏。
使用valgrind分析内存泄漏
php内存管理
分为三层:存储层(存储),堆层(堆)和接口层(emalloc / efree)
06-02-01-zend-memory-manager
图片
php由链管理。
图片
06-02-02-free_buckets
每次通过数组指针到请求的内存空间时,定义一个数组指针
初始化单个请求时,内核将初始化free_buckets列表,该列表是一个数组指针,其中存储双向链接列表的头和尾指针以实现内存管理
关于js内存
js内存使用原型链的方式,总有一个Windows节点,每次创建时,它将被安装在Windows节点上
关于Java内存
前面的描述都是关于动态语言的存储机制的。现在,我将解释静态语言。以java为例。写入每个Java文件之后,将编译并生成类文件。类文件定义了存储器的结构。使用load命令。加载到内存中,即内存结构是固定的。在操作过程中,当使用新命令时,将根据类文件定义的内存模型在jvm的虚拟机中创建相同的对象,并进行指向和计算。此时,本质是通过堆栈计算的
通过这种方式,静态语言模拟了动态语言。
关于动态和静态语言
可以计算出静态语言定义的内存结构。
动态语言和原型链类型,只需加载它即可。
垃圾收集
以前,PHP只是用于垃圾收集的简单引用计数方法。
不想看
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-363955-1.html
目标明确
我红旗系列远中近距离导弹就位