Login
网站首页 > 文章中心 > 其它

php数组占用内存大小是多少_java 数组占用内存大小

作者:小编 更新时间:2023-08-16 15:42:52 浏览量:427人看过

实践出php内存极限占用是多少

这个看情况了,处理大数据肯定需要的内存更大,只是本地调试肯定用不了多少.

一般作为一台专门运行php的服务器,肯定要尽可能的把内存给于php运行,一台不够就追加.

如何获得一个php变量储存在内存中占用的空间大小

我们在前面的php高效写法提到,尽量不要复制变量,特别是数组.一般来说,PHP数组的内存利用率只有 1/10, 也就是说,一个在C语言里面100M 内存的数组,在PHP里面就要1G.下面我们可以粗略的估算PHP数组占用内存的大小,首先我们测试1000个元素的整数占用的内存:

[php] view plain copy print?

php

echo memory_get_usage() , 'br';

$start = memory_get_usage();

$a = Array();

for ($i=0; $i1000; $i◆◆) {

$a[$i] = $i ◆ $i;

}

$mid = memory_get_usage();

$end = memory_get_usage();

echo 'argv:', ($mid - $start)/1000 ,'bytes' , 'br';echo 'argv:',($end - $mid)/1000 ,'bytes' , 'br';输出是:

大概了解1000

$a = array_fill(0, 10000, 1);

$mid = memory_get_usage(); //10k elements array;echo 'argv:', ($mid - $start )/10000,'byte' , 'br';$b = array_fill(0, 10000, 1);

$end = memory_get_usage(); //10k elements array;echo 'argv:', ($end - $mid)/10000 ,'byte' , 'br';得到:

[cpp] view plain copy print?

#include "stdafx.h"

//#include stdio.h

int main() {

printf("int:%d\nlong:%d\ndouble:%d\nchar*:%d\nsize_t:%d\n",sizeof(int), sizeof(long),

sizeof(double), sizeof(char *),

sizeof(size_t));

return 0;

在PHP中都使用long类型来代表数字,没有使用int类型大家都明白PHP是一种弱类型的语言,它不会去区分变量的类型,没有int float char *之类的概念.

我们看看php在zend里面存储的变量,PHP中每个变量都有对应的 zval, Zval结构体定义在Zend/zend.h里面,其结构:

typedef struct _zval_struct zval;

struct _zval_struct {

/* Variable information */

PHP使用一种UNION结构来存储变量的值,即zvalue_value 是一个union,UNION变量所占用的内存是由最大成员数据空间决定.

typedef union _zvalue_value {

long lval; /* long value */double dval; /* double value */struct { /* string value */char *val;

int len;

} str;

HashTable *ht; /* hash table value */zend_object_value obj; /*object value */} zvalue_value;

HashTable结构体定义在Zend/zend_hash.h.

typedef struct _hashtable {

zend_bool persistent;//1

unsigned char nApplyCount;//1

zend_bool bApplyProtection;//1

#if ZEND_DEBUG

#endif

} HashTable;

typedef struct bucket {

Bucket

运行php程序文件占用多大内存

共享文件,按功能分大类,好维护,好修改!

php内存占用过多主要是程序问题,比如把大数组,大数据读入进行处理!

vps?

php 数组占用内存太大

我们这前面的php高效写法提到,尽量不要复制变量,特别是数组,一般来说php数组的内存利用率只有1/10,也就是说,一个在c语言国面100M内存的数组,在php里面就是1G,

怎么查看一个PHP数组占用的内存

可以使用memory_get_usage函数,下面是一个小例子, 楼主自己发挥一下

php?

echo?memory_get_usage()?,?'br';?

$start?=?memory_get_usage();?

$a?=?Array();?

for?($i=0;?$i1000;?$i◆◆)?{?

$a[$i]?=?$i?◆?$i;?

}?

$mid?=?memory_get_usage();?

$end?=?memory_get_usage();?

以上就是土嘎嘎小编为大家整理的php数组占用内存大小是多少相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章