• User

    memory limit

    Ciao a tutti,

    avrei un quesito riguardo al memory limit di un server, legato in modo particolare al ridimensionamento di immagini tramite phpthumb. Mi è ormai chiaro che l'operazione di resize necessita l'utilizzo di molta memoria, specie se si tratta di immagini di medio-grandi dimensioni.

    Faccio un esempio pratico altrimenti non so come spiegarmi:

    assumiamo che il mio limite di memoria sia 100MB (in effetti è 99MB);

    io carico e ridimensiono un'immagine sul sito e per questa operazione utilizzo ad esempio 50MB;

    utilizzo metà della memoria disponibile, quindi tutto bene;

    ma

    se nello stesso momento in cui io eseguo quell'operazione anche un altro utente fa lo stesso e occupa 50MB di memoria, la memoria totale utilizzata dal server in quel preciso momento diventa 100MB (e quindi rischia di eccedere il limite) oppure rimane comunque 50MB? :mmm:

    p.s. spero di aver postato il mio quesito nella sezione giusta...


  • Moderatore

    Il limite di memoria di php non è per utente, ma per macchina. Quindi due utenti che consumano 50 mbytes ciascuno, consumano in totale 100 mbytes.


  • User

    ok, in effetti lo immaginavo ma avevo bisogno di una conferma... 🙂

    ma quindi con che criterio posso impostare il peso massimo per il caricamento di un'immagine? considerando che il mio limite di memoria è 99MB, ma anche il fatto che non ho idea di quanti utenti si registreranno e di quanti saranno gli upload simultanei.... tipo 5MB? 3MB? :bho:


  • Moderatore

    Si presume. Cioè si fanno calcoli a priori, considerando quella che può essere la richiesta di memoria effettiva.

    Poi si monitorizza il server e se dovessero verificarsi molti casi in cui si va out of memory, allora si incrementa il memory limit.

    Oppure puoi gestire il memory limit dinamicamente come indicato qui http://ulaptech.blogspot.it/2011/03/dynamically-adjusting-php-memory-limit.html


  • User

    grazie per il link, ora lo provo... però ti vorrei chiedere un'ultima cosa 😄

    se dovesse capitare che la memoria usata supera quella consentita, perché magari c'è un numero insolitamente eccessivo di upload, c'è un modo per evitare che all'utente appaia "fatal error" e piuttosto mostrargli un messaggio tipo "il caricamento dell'immagine non è andato a buon fine, riprovare"?


  • Moderatore

    Direi di no, php non permette di gestire quest'eventualità.


  • User

    Ho risolto nel senso che metto un silence @ davanti alla funzione imagecreatefromjpeg() all'interno del plugin, alla fine è quella che mi genera l'errore di out of memory, soluzioni migliori anche io credo non ce ne siano...