zqifa的博客

我不管,反正我最萌~

php在循环内外实例化类占用内存比较

关于php类的实例化和内存的关系,可以这么说:只要有一个new 关键字就是创建一个对象,创建一个对象就是在内存中分配了一个空间。

代码1:

在循环外实例化类:

class ABC
{
public $numBox = array();

public function ddd()
{
echo 'Now memory_get_usage: ' . memory_get_usage() . '<br />';
}
}

$instance = new ABC();
for ($i = 0; $i < 10; $i++) {
$instance->ddd();
}

运行结果:
Now memory_get_usage: 214024
Now memory_get_usage: 214184
Now memory_get_usage: 214184
Now memory_get_usage: 214184
Now memory_get_usage: 214184
Now memory_get_usage: 214184
Now memory_get_usage: 214184
Now memory_get_usage: 214184
Now memory_get_usage: 214184
Now memory_get_usage: 214184

代码2:

在循环内实例化类:

class ABC
{
public $numBox = array();

public function ddd()
{
echo 'Now memory_get_usage: ' . memory_get_usage() . '<br />';
}
}

for ($i = 0; $i < 10; $i++) {
$instance = new ABC();
$instance->ddd();
}

运行结果
Now memory_get_usage: 213992
Now memory_get_usage: 214152
Now memory_get_usage: 214152
Now memory_get_usage: 214152
Now memory_get_usage: 214152
Now memory_get_usage: 214152
Now memory_get_usage: 214152
Now memory_get_usage: 214152
Now memory_get_usage: 214152
Now memory_get_usage: 214152

只要有一个new 关键字就是创建一个对象,创建一个对象就是在内存中分配了一个空间,每次重新分配内存一定是要占用更多的内存的,所以,我们要对的类的实例化要注意,这样也就是为什么要使用单实例设计模式,因为这样可以节约内存。

作者:zqifa

出处:https://www.l1mn.com

原文地址:https://www.l1mn.com/p/ke6381.html

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

公告

昵称:zqifa

站龄: 4年2个月

博客持续完善ing,敬请期待...

打滚求打赏(๑ ̄ ̫  ̄๑)

此处弱弱求打赏~~万一有好心人呢~~

支付宝酱

支付宝赞助

微信酱

微信赞助

随笔分类

php(110)

linux(63)

python(44)

web前端(39)

js(35)

服务器(33)

mysql(30)

html(24)

docker(23)

windows(22)

centos(22)

django(20)

前端设计(18)

git(16)

常用软件(14)

数据库(14)

算法(14)

字符编码(13)

编程进阶(13)

笔记(12)

更多

我的标签

php(106)

linux(47)

python(45)

js(34)

mysql(30)

centos(28)

web前端(23)

docker(22)

windows(22)

django(20)

更多

相册

Copyright © zqifa 联系方式:z___qf@163.com