Ciao Belli!

Ho 2 problemi:
Il primo è che quando esequo grosse multi curl la memoria finisca, ho già risolto aumentandola con ini_set("memory_limit","64M");
Però non mi piace come soluzione! Non c'è un modo per elaborare il risultato del curl appena questo viene caricato e poter poi rimuovere subito dopo l'handle?

Secondo problema(quello importante): Ci mette troppo tempo! (tipo 40+ secondi)
Sono una ventina di link e se li fa tutti insieme non capisco perchè ci mette tanto!

I limiti di tempo sono settati! Timeout= 6 e ConnectTimeout=3
Quindi non vorrebbe dire che nella peggiore delle ipotesi impiega 9 secondi a completare (o a fallire) la pagina?

Codice PHP:
        $mh curl_multi_init();
        for(
$j=0$j<$i$j++){
            
$ch[$j] = curl_init($SubLinks[$j]['Link']);
            
curl_setopt($ch[$j], CURLOPT_CONNECTTIMEOUT3);
            
curl_setopt($ch[$j], CURLOPT_TIMEOUT6);
            
curl_setopt($ch[$j], CURLOPT_RETURNTRANSFERtrue);
            
curl_setopt($ch[$j], CURLOPT_MAXREDIRS0);
            
curl_multi_add_handle($mh$ch[$j]);
        }
        
        
$active null;
        do {
            
$mrc curl_multi_exec($mh$active);
        } while (
$mrc == CURLM_CALL_MULTI_PERFORM);

        while (
$active && $mrc == CURLM_OK) {
            if (
curl_multi_select($mh) != -1) {
                do {
                    
$mrc curl_multi_exec($mh$active);
                } while (
$mrc == CURLM_CALL_MULTI_PERFORM);
            }
        }
        
Dichiara_sites();
        
        for(
$j=0$j<$i$j++){
            if(
$ch[$j]){ // echo "
 
$j $i";
                
$Dati[$j] = EstraiDati(curl_multi_getcontent($ch[$j]));
                curl_multi_remove_handle(
$mh$ch[$j]);
                curl_close(
$ch[$j]);
            }
        }