當(dāng)前位置:首頁 >  站長 >  編程技術(shù) >  正文

PHP數(shù)組實際占用內(nèi)存大小原理解析

 2020-12-14 14:31  來源: 腳本之家   我來投稿 撤稿糾錯

  阿里云優(yōu)惠券 先領(lǐng)券再下單

這篇文章主要介紹了PHP數(shù)組實際占用內(nèi)存大小原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

一般來說,PHP數(shù)組的內(nèi)存利用率只有 1/10, 也就是說,一個在C語言里面100M 內(nèi)存的數(shù)組,在PHP里面就要1G。下面我們可以粗略的估算PHP數(shù)組占用內(nèi)存的大小,首先我們測試1000個元素的整數(shù)占用的內(nèi)存:

<?php
  echo memory_get_usage() , '<br>';
  $start = memory_get_usage();
  $a = Array();
  for ($i=0; $i<1000; $i++) {
  $a[$i] = $i + $i;
  }
  $mid = memory_get_usage();
  echo memory_get_usage() , '<br>';
  for ($i=1000; $i<2000; $i++) {
  $a[$i] = $i + $i;
  }
  $end = memory_get_usage();
  echo memory_get_usage() , '<br>';
  echo 'argv:', ($mid - $start)/1000 ,'bytes' , '<br>';
  echo 'argv:',($end - $mid)/1000 ,'bytes' , '<br>';

輸出是:

353352

437848

522024

argv:84.416bytes

argv:84.176bytes

大概了解1000 個元素的整數(shù)數(shù)組需要占用 82k 內(nèi)存,平均每個元素占用 84 個字節(jié)。而純 C 中整體只需要 4k(一個整型占用4byte * 1000 )。memory_get_usage() 返回的結(jié)果并不是全是被數(shù)組占用了,還要包括一些 PHP 運行本身分配的一些結(jié)構(gòu),可能用內(nèi)置函數(shù)生成的數(shù)組更接近真實的空間:

申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!

相關(guān)標(biāo)簽
php教程

相關(guān)文章

  • PHP8的數(shù)據(jù)類型轉(zhuǎn)換-PHP8知識詳解

    什么是數(shù)據(jù)類型轉(zhuǎn)換?答:數(shù)據(jù)從一個類型轉(zhuǎn)換成另外一個類型,就是數(shù)據(jù)類型轉(zhuǎn)換。在PHP8中,變量的類型就是由賦值決定的,也就是說,如果string賦值給$var,然后$var的類型就是string。之后將int值賦值給$var,它將是int類型。列如:在上面的代碼中的“=”不是數(shù)學(xué)里面的“等于”,它是

    標(biāo)簽:
    php教程
  • 在PHP8中檢測數(shù)據(jù)類型-PHP8知識詳解

    在PHP8中,可以使用多種方法來檢測數(shù)據(jù)類型。以下是常用的四種方法:使用gettype()函數(shù)、使用is_*系列函數(shù)、使用get_debug_type()函數(shù)、使用get_class()函數(shù)。一、使用gettype()函數(shù)gettype()函數(shù)返回給定變量的數(shù)據(jù)類型。例如:二、使用is_*系列函數(shù)P

    標(biāo)簽:
    php教程
  • PHP語言優(yōu)勢-PHP8知識詳解

    PHP起源于自由軟件,并且得到了不斷的迭代更新,在web開發(fā)領(lǐng)域獨領(lǐng)風(fēng)騷,得到了廣大使用者的喜愛,PHP作為一款優(yōu)秀的腳本語言,具有以下優(yōu)勢:1、源碼開源:所有的PHP源代碼,你都能從PHP官方網(wǎng)站下載到,可以快速修改和利用。2、完全免費:你可以從PHP官方網(wǎng)站下載源碼完全免費,無需支付任何費用,直

    標(biāo)簽:
    php教程
  • PHP8的新特性-PHP8知識詳解

    PHP8是PHP編程語言的一個主要版本,在2020年11月26日發(fā)布。它引入了許多新特性和改進,包括以下一些主要特性:1.JIT編譯器:PHP8引入了名為TracingJIT的即時(Just-In-Time)編譯器。JIT可以將PHP腳本中頻繁執(zhí)行的部分編譯成原生機器碼,提高執(zhí)行速度。2.類型系統(tǒng)改

    標(biāo)簽:
    php教程
  • PHP是什么-PHP8知識詳解

    PHP是什么?PHP服務(wù)網(wǎng)從下面幾點為你講清楚什么是PHP。1、PHP最開始是PersonalHomePage(個人主頁)的縮寫,已經(jīng)正式更名為“PHP:HypertextPreprocessor”,超文本預(yù)處理器的字母縮寫。2、PHP是一種被廣泛應(yīng)用的、跨平臺、開放源代碼的多用途服務(wù)器端腳本語言,

    標(biāo)簽:
    php教程

熱門排行

信息推薦