Foros del Web » Programando para Internet » PHP »

Mi script se devora la ram....

Estas en el tema de Mi script se devora la ram.... en el foro de PHP en Foros del Web. hola gente, tengo un drama con mi script ya que al monitorearlo con top, he notado que el consumo de memoria es muy alto, e ...
  #1 (permalink)  
Antiguo 20/10/2011, 20:44
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Mi script se devora la ram....

hola gente, tengo un drama con mi script ya que al monitorearlo con top, he notado que el consumo de memoria es muy alto, e incrementa de forma lineal. El script realiza llamadas por curl a un server y esas llamadas son muchas.

alguna sugerencia..

gracias
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #2 (permalink)  
Antiguo 21/10/2011, 13:56
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Mi script se devora la ram....

Eso me pasa con un código que hace ping hacia varios servidores y a cada rato se cae el servidor web. Una forma sería siempre asegurarte que se comience una conexión con cURL siempre y cuando se haya cerrado la anterior.

Código PHP:
Ver original
  1. <?php
  2. $c = curl_init('http://google.com/');
  3. curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
  4. $page = curl_exec($c);
  5.  
  6. closeFirstCurl:
  7.  
  8. if(get_resource_type($c) == 'curl'){
  9.     goto closeFirstCurl;
  10. }
  11.  
  12. echo $page;
  13.  
  14. $c = curl_init('http://google.com/');
  15. curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
  16. $page = curl_exec($c);
  17.  
  18. closeSecondCurl:
  19.  
  20. if(get_resource_type($c) == 'curl'){
  21.     goto closeSecondCurl;
  22. }
  23.  
  24. echo $page;

Nota: Este código solo funcionará con PHP 5.3.x por el goto
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 21/10/2011, 14:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Mi script se devora la ram....

@abimaelrc goto?? :S
  #4 (permalink)  
Antiguo 21/10/2011, 14:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mi script se devora la ram....

Cita:
Iniciado por GatorV Ver Mensaje
@abimaelrc goto?? :S
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 21/10/2011, 14:14
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Mi script se devora la ram....

Si lo hice por molestar, yo sé que no es recomendable, lo hice por hacer algo diferente jejeje
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 21/10/2011, 14:40
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Mi script se devora la ram....

goto en ciertos contextos es útil, @GatorV Zend2 utiliza goto :P

@cadrogui, perdón por el offtopic.
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 21/10/2011, 14:45
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: Mi script se devora la ram....

Tengo una clase para las conexiones curl y después que hago la conexión siempre la cierro, el tema es que de cada conexión obtengo el código de la página y lo meto en una variable, trate de liberar memoria con unset() y dejanda null pero el problema sigue....
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #8 (permalink)  
Antiguo 21/10/2011, 15:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mi script se devora la ram....

Cita:
Iniciado por masterpuppet Ver Mensaje
goto en ciertos contextos es útil, @GatorV Zend2 utiliza goto :P

@cadrogui, perdón por el offtopic.
¿De verdad? ¡Necesito ver un ejemplo!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 21/10/2011, 15:04
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Mi script se devora la ram....

sí, por ironía del destino goto revive, y ni hablar de mi profesor de mecanizados, está encantado por ello
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #10 (permalink)  
Antiguo 21/10/2011, 19:03
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Mi script se devora la ram....

¿Podrias mostrar lo que haz hecho?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #11 (permalink)  
Antiguo 21/10/2011, 20:19
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Mi script se devora la ram....

Cita:
Iniciado por pateketrueke Ver Mensaje
¿De verdad? ¡Necesito ver un ejemplo!
Pensé al principio que era una broma de Master pero resulta sí es verdad que lo usa o por lo menos la discusión que existe indica que se analiza el uso de goto en varios lugares, mira este material http://framework.zend.com/wiki/displ...rk+2.0+Roadmap
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #12 (permalink)  
Antiguo 21/10/2011, 20:21
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: Mi script se devora la ram....

uff, es un script de 2000 lineas... :S
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #13 (permalink)  
Antiguo 21/10/2011, 20:38
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Mi script se devora la ram....

¿Pero sabes donde te está dando el problema?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #14 (permalink)  
Antiguo 21/10/2011, 20:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mi script se devora la ram....

¡Diablos!

Acabo de leer esto:
https://github.com/knplabs/zend-mark...ser/Bbcode.php

Y si, tiene todo el sentido del mundo, yo recuerdo cuando escribía scripts para mIRC usaba bastante el goto para precisamente saltar de un estado a otro.

No necesariamente para bucles ni cosas triviales, es curioso pero funciona.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 21/10/2011, 20:49
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: Mi script se devora la ram....

@abimaelrc, si acabo de localizar el error y estoy usando un dom parser y ahí se generaba la fuga.. en la variable que tenia destinada para recibir el código html la destruí con unset, y la fuga cedió... ahora el script mantiene un promedio de consumo de ram de 6%, por lo que desde consumirse toda la ram, hasta ahora q tengo un 6%, quedo mas que contento!!...

gracias por sus sugerencias y por el off topic jajaja definitivamente lo usaré!! jajja
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
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 01:47.