Maison  >  Article  >  développement back-end  >  Les variables occupent-elles de la mémoire en php ?

Les variables occupent-elles de la mémoire en php ?

(*-*)浩
(*-*)浩original
2019-09-06 09:42:482441parcourir

Les variables occupent-elles de la mémoire en php ?

Une façon de stocker des données en php est le montant que je peux modifier. Cette méthode consiste à ouvrir un espace dans la mémoire qui peut stocker des données <.>, donnez un nom à cet espace, et l'espace à ce moment peut être appelé une variable. Cette valeur peut changer pendant le fonctionnement

Le nom de l'espace actuel est le nom de la variable, et les données (huit types de données) de l'espace actuel sont appelées la valeur de la variable

Exemple : (Apprentissage recommandé : Tutoriel vidéo PHP)

La version de PHP est 7.2

<?php
echo memory_get_usage() , &#39;<br>&#39;;
$start = memory_get_usage();
$a = Array();
for ($i=0; $i<1000; $i++) {
$a[$i] = $i + $i;
}
$mid = memory_get_usage();
echo memory_get_usage() , &#39;<br>&#39;;
for ($i=1000; $i<2000; $i++) {
$a[$i] = $i + $i;
}
$end = memory_get_usage();
echo memory_get_usage() , &#39;<br>&#39;;
echo &#39;argv:&#39;, ($mid - $start)/1000 ,&#39;bytes&#39; , &#39;<br>&#39;;
echo &#39;argv:&#39;,($end - $mid)/1000 ,&#39;bytes&#39; , &#39;<br>&#39;;
echo &#39;Memory:&#39;, ($mid - $start)/1024 ,&#39;k&#39; , &#39;<br>&#39;;
echo &#39;Memory:&#39;,($end - $mid)/1024 ,&#39;k&#39; , &#39;<br>&#39;;
输出是:
389336
418056
442632
argv:28.72bytes
argv:24.576bytes
Memory:28.046875k
Memory:24k

Retour au allocation actuelle La quantité de mémoire accordée à votre script PHP, en octets.

Il est généralement entendu qu'un tableau entier de 1000 éléments occupe 28 Ko de mémoire, et chaque élément occupe en moyenne 28 octets.

Les résultats renvoyés par memory_get_usage() ne sont pas tous occupés par le tableau, mais aussi Pour inclure certaines structures allouées par PHP

lui-même, le tableau généré par la fonction intégrée peut être plus proche de l'espace réel :

<?php
$start = memory_get_usage();
$a = array_fill(0, 10000, 1);
$mid = memory_get_usage(); //10k elements array;
echo &#39;argv:&#39;, ($mid - $start )/10000,&#39;byte&#39; , &#39;<br>&#39;;
echo &#39;Memory:&#39;, ($mid - $start)/1024 ,&#39;k&#39; , &#39;<br>&#39;;
$b = array_fill(0, 10000, 1);
$end = memory_get_usage(); //10k elements array;
echo &#39;argv:&#39;, ($end - $mid)/10000 ,&#39;byte&#39; , &#39;<br>&#39;;
echo &#39;Memory:&#39;,($end - $mid)/1024 ,&#39;k&#39; , &#39;<br>&#39;;
得到:
argv:54.5792byte
argv:54.5784byte

argv:39.736byte
Memory:388.046875k
argv:39.736byte
Memory:388.046875k

On comprend grosso modo qu'un un tableau entier de 10 000 éléments occupe 388 Ko de mémoire. D'après ce résultat, il semble qu'un élément du tableau occupe environ 39 octets.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn