Foros del Web » Programando para Internet » PHP »

Rendimiento cURL

Estas en el tema de Rendimiento cURL en el foro de PHP en Foros del Web. hola gente, tengo un script que busca info en una web mediante cURL, y demoraba un tiempo x, ahora para optimizar estoy usando múltiples conexiones ...
  #1 (permalink)  
Antiguo 26/12/2011, 07:06
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 16 años, 4 meses
Puntos: 5
Rendimiento cURL

hola gente, tengo un script que busca info en una web mediante cURL, y demoraba un tiempo x, ahora para optimizar estoy usando múltiples conexiones "curl_multi_exec", pero el rendimiento no ha aumentado tanto como esperaba, a que se puede deber esto?..

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

http://www.cocert.cl
  #2 (permalink)  
Antiguo 26/12/2011, 07:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 6 meses
Puntos: 2534
Respuesta: Rendimiento cURL

¿Estás ejecutando dichas funciones a través de tu navegador?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 26/12/2011, 07:08
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: Rendimiento cURL

no, por CLI
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #4 (permalink)  
Antiguo 26/12/2011, 07:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 6 meses
Puntos: 2534
Respuesta: Rendimiento cURL

¿Cuantas conexiones al mismo tiempo?

¿Puedes brindarnos mas información al respecto?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 26/12/2011, 07:13
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: Rendimiento cURL

las conexiones son relativas a veces son 3, 6, pero nomas de 15.. que otra informacion necesitas??
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #6 (permalink)  
Antiguo 26/12/2011, 07:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 6 meses
Puntos: 2534
Respuesta: Rendimiento cURL

¿Si tu tuvieras que ayudar a resolver un problema de este tipo que tipo de información necesitarías?

Entiende que decir simplemente no me sirve no basta, decir poco no ayuda.

Imagino que estarás ejecutando tu script en un maquina con una buena conexión a Internet, completamente independiente y en modo servidor ¿o no?

¿Cuales son los stats que recibes? ¿Logs? ¿ps?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 26/12/2011, 07:23
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: Rendimiento cURL

el tiempo de ejecucion sin las multiples conexiones era de 15 a 25 minutos, y el tiempo sigue en el mismo rango, el script e ejecuta en un VPS "vpsville.ca"

yo pensaba que al implementar conexiones multiples el tiempo deberia reducirse a la mitad por lo menos.

estoy monitoreando las conexiones con tcptrack y ahi puedo ver solamente q hay multiples conexiones establecidas...
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #8 (permalink)  
Antiguo 26/12/2011, 07:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 6 meses
Puntos: 2534
Respuesta: Rendimiento cURL

Pero sigues ejecutando todas las conexiones con un solo script, supongo que si tienes dichas URLs en un archivo y ejecutas un proceso independiente para cargar cada URL podría resultar mejor.

¿Quieres mostrar el código que actualmente usas?

En teoría usar multi cURL debe ser eficiente, sin embargo una mala implementación siempre resulta sin diferencias.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 26/12/2011, 07:37
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: Rendimiento cURL

la url es unica ya que se le pasan valores por POST

Código PHP:

    $node_count 
count($CRR_Cuaderno);
    
    
$curl_arr = array();
    
$master curl_multi_init();
    
    for(
$i 0$i $node_count$i++)
    {
      
$data = array();
      
$data['TIP_Causa'] = $rol_data['0'];
      
$data['ROL_Causa'] = $rol_data['1'];
      
$data['ERA_Causa'] = $rol_data['2'];
      
$data['COD_Tribunal'] = $Cod_Tribunal;
      
      
$data['TIP_Cuaderno'] = $TIP_Causa[$i]; 
      
      
$data['GLS_Cuaderno'] = "cualquier_cuaderno";
      
$data['CRR_IdCuaderno'] = $CRR_Cuaderno[$i]; 
      
$data['TIP_Informe'] = "1";
      
$data['FLG_Caratula'] = "0";
      
$data['TIP_Cargo'] = "3";
      
$data['COD_Corte'] = "null";
      
$data['FLG_ImpresionTribunal'] = "1";
      
$data['CRR_Cuaderno'] = $CRR_Cuaderno[$i];
      
$data['irAccionAtPublico'] = "Ir+a+Cuaderno";
      
$data['FLG_Vuelta'] = "null";
      
      
$cuaderno_data $this->compile_post_data($data);    
      
      
$curl_arr[$i] = curl_init($url);
      
curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFERtrue);
      
curl_setopt($curl_arr[$i], CURLOPT_POST1);
      
curl_setopt($curl_arr[$i], CURLOPT_POSTFIELDS$cuaderno_data);
      
curl_setopt($curl_arr[$i], CURLOPT_COOKIEFILE$cookie);
      
curl_setopt($curl_arr[$i], CURLOPT_FOLLOWLOCATION  ,1);
      
curl_multi_add_handle($master$curl_arr[$i]);        
    }
    
    do {
        
curl_multi_exec($master,$running);
    } while(
$running 0);


    for(
$i 0$i $node_count$i++)
    {
        
$results curl_multi_getcontent  $curl_arr[$i]  );

        
curl_multi_remove_handle($master$curl_arr[$i]);

        
$BYTES_CUADERNO strlen($results);
        
$tot $tot $BYTES_CUADERNO;
    }
    echo 
'TOTAL BYTES MULTITHREAD: ' .$tot"\r\n"
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl

Etiquetas: curl, rendimiento
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 03:01.