Pagina 1 di 7 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 65
  1. #1

    array grandi... lentezza :(

    Codice PHP:
                         if (!isset($__url2id[$url]))
                         {
                                 
    $newid=(int)count($__url2id);
                                
    $__url2id[$url]=$newid+1;
                                
    $__urltodo[]=$url;
                                
                                
                                            
                         } 
    questo porzione di codice una volta che $__url2id diventa molto grande fa occupare anche il 100% del mio porcio... help come potrei fare?

  2. #2
    Utente bannato
    Registrato dal
    Apr 2004
    Messaggi
    1,392

    Re: array grandi... lentezza :(

    Originariamente inviato da xnavigator
    Codice PHP:
                         if (!isset($__url2id[$url]))
                         {
                                 
    $newid=(int)count($__url2id);
                                
    $__url2id[$url]=$newid+1;
                                
    $__urltodo[]=$url;
                                
                                
                                            
                         } 
    questo porzione di codice una volta che $__url2id diventa molto grande fa occupare anche il 100% del mio porcio... help come potrei fare?
    porcio?
    Se intendi pc, cambia processore e RAM DDR!!!

  3. #3

    Re: Re: array grandi... lentezza :(

    Originariamente inviato da PaTeR
    porcio?
    Se intendi pc, cambia processore e RAM DDR!!!





    porcio = processore!
    e non c'entra niente la ram! :quipy:

  4. #4
    Utente bannato
    Registrato dal
    Apr 2004
    Messaggi
    1,392

    Re: Re: Re: array grandi... lentezza :(

    Originariamente inviato da xnavigator



    porcio = processore!
    e non c'entra niente la ram! :quipy:
    Non conosco questo linguaggio... poi in caso mi dai ripetizioni! Senti... per il tuo problema non so che dirti,
    se non chiederti spiegazioni più dettagliate...

  5. #5
    [OT]
    si dice procio :gren: :lol:
    [/OT]
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  6. #6

    Re: Re: Re: Re: array grandi... lentezza :(

    Originariamente inviato da PaTeR
    se non chiederti spiegazioni più dettagliate...

    pater che dirti...
    quando eseguo quelle operazioni (1° post) il php sfrutta il 100% del processore...
    questo quando quegli array iniziano a diventare grandi

  7. #7
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    dov'è inserito quel pezzo di codice?? visto cosi nn sembra poter causare un impiego massiccio del processore.
    think simple think ringo

  8. #8
    ma come fai a dire che e' proprio quel pezzo di codice a causare l' overload della CPU ?

    Comunque piu' ottimizzato di cosi', non saprei ...

    codice:
    if ( !isSet( $__url2id[$url] ) ) {
    	$__url2id[$url] = count( $__url2id ) + 1;
    	array_push( $__urltodo, $url );
    }
    dando per scontato che la variabile $url esista sempre, per ogni if ...




    quindi per maggior sicurezza farei:
    codice:
    if ( isSet($url) && !isSet( $__url2id[$url] ) ) {
    	$__url2id[$url] = count( $__url2id ) + 1;
    	array_push( $__urltodo, $url );
    }
    .... e qui do per sontato che $__url2id e $__urltodo siano array preassegnati .... prova quest' ultimo codice e facci sapere
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9

    Re: Re: Re: array grandi... lentezza :(

    Originariamente inviato da xnavigator



    porcio = processore!
    e non c'entra niente la ram! :quipy:
    Ciao,
    non so esattamente cosa intendi per "molto grande" però quando gli array si gonfiano oltre al sovracarico di cpu provocano consumi smisurati di ram.

    Io per risolvere un problema simile con array multidimensionali di dimensioni "esagerate" sono stato obbligato ad appoggiarmi a mysql.

    Dipende dal tuo script, dalle funzioni e procedure.
    Non puoi spezzettare le operazioni in più sottoprocedure ?

    Se hai possibilità di intervenire sul php.ini ci sono poi valori che potrebbero aiutarti per il problema della memoria...

    Cmq anche a me sembra strano che nelle righe di codice postato ci possano essere problemi alla cpu, i calcoli sono "basilari" penserei più alla ram, per l'eventuale "gonfiore" dell'array...

    quanti valori contiene ?
    [°_°] The Web Styler Project [°_°]
    :.:Classifica Spettacolare :.:
    :-:Partecipa :-: GUADAGNA SCRIVENDO ARTICOLI !! fino a 2,5 crediti per parola

  10. #10
    ragazzi guardate qui..
    Codice PHP:

    function url($url) {
    global 
    $__url2id,$__urltodo;

                         
                         if (!isset( 
    $__url2id[$url])) {
                            
    $__url2id[$url] = count($__url2id) + 1;
                            
    array_push($__urltodo,$url);
                        }

                         
                         return 
    $__url2id[$url];
    }

    $__urltodo=array();
    $__url2id=array();

    for(
    $i=0;$i<25000;$i++) 
    {
            
    $__url2id[$i.'ciaociao']=$i;
            
    array_push($__urltodo,$i.'ciaociao');

    }


    echo 
    '5sec to insert...';
    sleep(5);

    for(
    $i=0;$i<10;$i++) {
    //usleep(250000);
    echo url('nonoloso.url'.$i);

    ho messo quelle modifiche di andrea...
    cmq questo script riempe l'array $__url2id e $__urltodo di 25000 elementi poi una volta che faccio partire la funzione url() la cpu sale al 90-100%... ho messo nel ciclo for anche lo usleep cosi la cpu non si dovrebbe importare più di tanto del ciclo stesso (però usleep non funziona su wind)

    :master:

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.