Foros del Web » Programando para Internet » PHP »

$var = 'ABCDEFGH'; $var ocupa 8 BYTES en RAM ?

Estas en el tema de $var = 'ABCDEFGH'; $var ocupa 8 BYTES en RAM ? en el foro de PHP en Foros del Web. hola, si tenemos Código: $var = 'ABCDEFGH'; ésa variable cuánto ocúpa en RAM? Luego, Código: $var2 = 'ABCDEFGHABCDEFGH'; ocupa el DOBLE de RAM? gracias! Difiere ...
  #1 (permalink)  
Antiguo 13/04/2021, 12:38
SLD
 
Fecha de Ingreso: diciembre-2013
Mensajes: 122
Antigüedad: 10 años, 10 meses
Puntos: 6
$var = 'ABCDEFGH'; $var ocupa 8 BYTES en RAM ?

hola, si tenemos
Código:
$var = 'ABCDEFGH';
ésa variable cuánto ocúpa en RAM?

Luego,
Código:
$var2 = 'ABCDEFGHABCDEFGH';
ocupa el DOBLE de RAM?

gracias!


Difiere de un lenguaje de programación a otro?
  #2 (permalink)  
Antiguo 13/04/2021, 13:48
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años, 6 meses
Puntos: 120
Respuesta: $var = 'ABCDEFGH'; $var ocupa 8 BYTES en RAM ?

Cita:
Iniciado por SLD Ver Mensaje
hola, si tenemos
Código:
$var = 'ABCDEFGH';
ésa variable cuánto ocúpa en RAM?

Luego,
Código:
$var2 = 'ABCDEFGHABCDEFGH';
ocupa el DOBLE de RAM?

gracias!
el almacenar variables puede que ocupe mas de los bytes que se almacenan en el debido a que cada lenguaje gestiona de diferente forma, su forma de almacenarla, por que internamente pueden ocupar otros bytes extras, como para indicar el tamaño de un string, asi evitar leer byte a byte, y tener ya el valor del tamaño del string,
en php puedes ver cuanto ocupa tus variables o procesos en memoria ram ,capturando el tamaño antes del proces y restandola con el proceso actual

https://www.php.net/manual/es/functi...-get-usage.php

Código PHP:
<?php
$antes 
memory_get_usage();
$var2 'ABCDEFGHABCDEFGH';

echo (
memory_get_usage() - $antes). ' bytes usados';
Cita:
Iniciado por SLD Ver Mensaje
Difiere de un lenguaje de programación a otro?
si como te mencione cada uno gestiona de manera diferente sus datos, pero siempre habra mejor rendimiento en lenguajes compilados(c++,java) que los interpretes como (php,javascript,python).

lo importante en cualquier lenguaje es, tratar de hacer limpieza, de variables que ya no se usen. ya que depender del garbage collector a veces puede mermar el rendimiento en las aplicaciones. sobre todo en los de calculo exacto
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9
  #3 (permalink)  
Antiguo 13/04/2021, 20:03
SLD
 
Fecha de Ingreso: diciembre-2013
Mensajes: 122
Antigüedad: 10 años, 10 meses
Puntos: 6
Respuesta: $var = 'ABCDEFGH'; $var ocupa 8 BYTES en RAM ?

hola tuadmin te cuento que lo híce!
Código:
$antes = memory_get_usage();
$var2 = 'ABCDEFGHABCDEFGH';

echo (memory_get_usage() - $antes). ' bytes usados';
exit;
y siempre obtengo:
Código PHP:
0 bytes usados 
lo corrí en un W10 con PHP 8 y un CentOs 7 con PHP 7
  #4 (permalink)  
Antiguo 14/04/2021, 08:54
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años, 6 meses
Puntos: 120
Respuesta: $var = 'ABCDEFGH'; $var ocupa 8 BYTES en RAM ?

Cita:
Iniciado por SLD Ver Mensaje
hola tuadmin te cuento que lo híce!
Código:
$antes = memory_get_usage();
$var2 = 'ABCDEFGHABCDEFGH';

echo (memory_get_usage() - $antes). ' bytes usados';
exit;
y siempre obtengo:
Código PHP:
0 bytes usados 
lo corrí en un W10 con PHP 8 y un CentOs 7 con PHP 7
si error mio, olvide que PHP al ser un lenguaje interpretado, se procesa primero los valores, variables funciones y constantes para hacer uso poster de estos. todo para hacerlo mas eficientemente,

en resumen cuando, tienes esto
Código PHP:
$var2 'ABCDEFGHABCDEFGH'
php toma esa variable y lo almacena dentro de sus procesos, y no se vuelve parte del codigo dinamico, por ello no se refleja con memory_get_usage()

pero si se vuelve dinamico se puede estimar el tamaño en ram

Código PHP:
<?php
$var2 
'ABCDEFGHABCDE';
$antes memory_get_usage();

$dinamico $var2[0] .$var2[1] .$var2[2] .$var2[3] .$var2[4] .$var2[5
.
$var2[6] .$var2[7] .$var2[8] .$var2[9] .$var2[10] .$var2[11
;

echo (
memory_get_usage() - $antes). ' bytes usados';
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9
  #5 (permalink)  
Antiguo 14/04/2021, 10:58
SLD
 
Fecha de Ingreso: diciembre-2013
Mensajes: 122
Antigüedad: 10 años, 10 meses
Puntos: 6
Respuesta: $var = 'ABCDEFGH'; $var ocupa 8 BYTES en RAM ?

gracias tuadmin,
puedes explicarme por qué ésto NO retorna CIEN véces lo que retorna:
Código:
$antes = memory_get_usage();
$dinamico = str_repeat('ABCDEFGHABCDE', 1);
echo (memory_get_usage() - $antes). ' bytes usados';
(en mi PC retorna 48).

Por qué esto no devuelve 480 ??
Código:
$antes = memory_get_usage();
$dinamico = str_repeat('ABCDEFGHABCDE', 10);
echo (memory_get_usage() - $antes). ' bytes usados';
qué teoría se aplica ahí?...

  #6 (permalink)  
Antiguo 14/04/2021, 18:54
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años, 6 meses
Puntos: 120
Respuesta: $var = 'ABCDEFGH'; $var ocupa 8 BYTES en RAM ?

Cita:
Iniciado por SLD Ver Mensaje
gracias tuadmin,
puedes explicarme por qué ésto NO retorna CIEN véces lo que retorna:
Código:
$antes = memory_get_usage();
$dinamico = str_repeat('ABCDEFGHABCDE', 1);
echo (memory_get_usage() - $antes). ' bytes usados';
(en mi PC retorna 48).

Por qué esto no devuelve 480 ??
Código:
$antes = memory_get_usage();
$dinamico = str_repeat('ABCDEFGHABCDE', 10);
echo (memory_get_usage() - $antes). ' bytes usados';
qué teoría se aplica ahí?...

bueno eso ya es meterse en las tripas de php en como esta programado en C. y ese es terreno complejo por que son varias personas encargadas del proyecto que llevan años y años avocadas a el solamente

pero en resumen, esos primeros 48Bytes que te da , es lo que le costo en RAM hacer ese proceso, y cuando lo repites 10 veces, gastara bytes pero no quiere decir que hacerlo le costara hacer 100 veces los bytes usados, como te comente, internamente se hace procesos, donde se usar RAM y se Libera, mucho antes que las llamadas a la funcion memory_get_usage()

y en resumen, lo que aun se queda en RAM es lo que estarias capturando.

un proceso puede usar miles de megas de RAM pero a lavez va liberandolas para que los siguientes procesos tengan mas RAM con la que trabajar, ojo que PHP tiene un limitador de cuanto de RAM usa como maximo por SCRIPT, si execede en algun momento eso, dara un error, y terminara el SCRIPT
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9
  #7 (permalink)  
Antiguo 15/04/2021, 07:28
SLD
 
Fecha de Ingreso: diciembre-2013
Mensajes: 122
Antigüedad: 10 años, 10 meses
Puntos: 6
Respuesta: $var = 'ABCDEFGH'; $var ocupa 8 BYTES en RAM ?

gracias tuadmin.

existirá alguna función que indíque (PRONOSTIQUE) un aproximado de lo que costará X programa en RAM?

algo como:
Código:
preview_future_ram($bloque_de_codigo);
ó
preview_future_ram($file.php);
return RAM_aprox;
es decir, que nos dé un APROX de la RAM que será necesaria:
Código:
while($i < 1024){
$ARRAY[] = str_repeat('ABCDEFGHABCDE', 1024);
$i ++;
}
  #8 (permalink)  
Antiguo 15/04/2021, 08:57
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años, 6 meses
Puntos: 120
Respuesta: $var = 'ABCDEFGH'; $var ocupa 8 BYTES en RAM ?

pronosticar , es dificil ya que imaginate este codigo

Código PHP:
Ver original
  1. <?php
  2. $var ="1";
  3. for($i=1;$i==-1;$i++){
  4. $var .= "h";
  5. }

como resultado tendrias un bucle infinito, que por mal programado podria causar el agotamiento de la ram, pero bueno tambien puedes preveer el maximo de RAM; por cada byte de informacion, que tenga tu script, y si sobrepasa los 1MB multiplicalo por 2, y con eso tendras una estimado de lo que deberia usarse

por ejemplo si lees un archivo mp3, unos 5mb lo almacenas en ram para hacer la conversion en WAV, el uso no deberia ser mayor a los 10mb, claro dependera mucho de tus funciones. ojo que php siempre tendra funciones y extensioens variantes con cada version y siempre estara consumiendo 1,2,3,4,5 o 6MB en ram cada Script
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9
  #9 (permalink)  
Antiguo 16/04/2021, 04:41
SLD
 
Fecha de Ingreso: diciembre-2013
Mensajes: 122
Antigüedad: 10 años, 10 meses
Puntos: 6
Respuesta: $var = 'ABCDEFGH'; $var ocupa 8 BYTES en RAM ?

gracias tuadmin

Etiquetas: ocupa, ram, var
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:19.