php 释放内存-如果PHP中的静态方法太多,会不会消耗显存?

2023-08-27 0 5,708 百度已收录

摘自C#大牛的话:

方法(Method)是类型定义,所以它存储在Type Object上,Type Object

它是分配在托管堆上的特殊类型。 在同一个AppDomain中,每种类型对应一个全局Type

目的。 引用类型的每个实例都包含一个指向其直接类型 Type Object 的指针,并且每个 Type Object

还有一个类似的指针,用于标记其直接父类型的Type Object。

当调用静态方法时,CLR会根据方法调用找到其对应的Type Object,然后JIT该方法,JIT

下面的方法是本机代码php 释放内存,可以直接运行。 然后,将这部分代码加载到显存中,将方法的参数加载到当前执行栈中,同时将原来的执行上下文地址也记录到执行栈中; 方法开始执行,执行完后,读出执行栈中的返回地址,然后

php 释放内存-如果PHP中的静态方法太多,会不会消耗显存?

CLR使用本机跳转指令跳转到返回继续执行。

当调用实例方法时,CLR会根据实例的Type Object指针找到对应的Type Object,然后JIT该方法,JIT

下面的方法是本机代码,可以直接运行。 然后,这部分代码被加载到显存中,实例对象,以及技巧的参数被加载到当前执行栈中

php 释放内存-如果PHP中的静态方法太多,会不会消耗显存?

(实例对象始终是第一个参数arg0,使用ldarg0

指令被读取),原来的执行上下文地址也被记录到执行栈中; 方法开始执行,执行完后读取执行栈中的返回地址,然后CLR

使用原生跳转指令,跳转到这个返回继续执行。

php 释放内存-如果PHP中的静态方法太多,会不会消耗显存?

如果该方法已经进行过 JIT 处理,则不会进行第二次 JIT 处理。

该方法在IL中以字节流的形式存在,因此仍然会占用显存。

然后,方法 JIT 将驻留在进程的地址空间中,因此它也会在运行时获取视频内存。

注意:JIT是及时编译器

对于PHP来说,只有在访问的时候才传输到显存,所以静态方法和实例方法是一样的。使用哪个取决于你的设计

我去SO帮你问,Should I避免在PHP中使用太多静态方法吗?,老外说从OOP的角度来看,应该避免使用太多静态方法。 在这个时代php 释放内存,你不需要太关注显存的消耗(当然,糟糕的代码还不够)。

看来,老外的看法和我一样! ! (遗憾的是,PHP 在调用之前加载所有方法,这与 .NET 不同)

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 php php 释放内存-如果PHP中的静态方法太多,会不会消耗显存? https://www.wkzy.net/game/166450.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务