Vantaggi dell'impostazione di PHP memory_limit su un valore inferiore per uno specifico script PHP?

4

Ho bisogno di eseguire solo poche righe di codice PHP su ogni singola pagina del mio sito web. Questo codice PHP non richiede più di 4 MB di memoria. Ecco perché voglio allocare solo 4 MB di memoria a tutte le pagine usando il seguente codice:

ini_set('memory_limit','4M');

Offre vantaggi in qualsiasi delle seguenti aree:
1. Velocità del sito web 2. Ottimizzazione dell'ampiezza di banda
3. Ottimizzazione dell'uso della memoria del server

    
posta Forte 12.08.2013 - 06:28
fonte

1 risposta

8

Non ti darà alcun incremento di velocità, né ottimizzazione della larghezza di banda, né utilizzo della memoria del server.

Il limite di memoria dice che quando uno script tenta di utilizzare più memoria, si verifica un errore. Questo è l'unico effetto. PHP non ottimizzerà magicamente la memoria se raggiungi il limite di memoria. Se un oggetto richiede 16 byte di memoria, richiederà sempre 16 byte, indipendentemente dal limite di memoria effettivo e se viene raggiunto o sta per essere raggiunto.

  1. La velocità del sito web dipende da molti fattori come la dimensione di HTML, CSS, JavaScript e immagini, il numero di richieste per pagina richieste per caricare tutto il contenuto, il tempo necessario al code-behind per elaborare il inserire e generare l'output, ecc. Il limite di memoria non ha alcun effetto su questo.

  2. L'utilizzo della larghezza di banda dipende dalle dimensioni di HTML, CSS, JavaScript e immagini, il numero di richieste per pagina richieste per caricare tutto il contenuto. L'impostazione di 2 MB o 200 MB come limite non cambierà nulla.

  3. L'utilizzo della memoria per un determinato script non cambierà nessuno, poiché dipende dal numero di oggetti e dalle loro rispettive dimensioni. Se e solo se i diversi script prendono a caso troppa memoria e l'unica risposta che hai è di ucciderli, allora avrà un impatto positivo sull'utilizzo della memoria: invece di riempire la memoria, quegli script fasulli saranno semplicemente fermati da un Errore PHP.

    Dubito strongmente che questo caso esista. Quando uno script prende troppa memoria, cosa dovrebbe fare uno sviluppatore è ispezionarlo con un profiler e correggere le parti che stanno allocando troppa memoria. Uccidere le istanze che riempiono la memoria è il modo più strano per "risolvere" il problema.

Quindi perché qualcuno dovrebbe usare il limite di memoria?

Il limite di memoria può essere utile nel debug, per essere sicuri che la tua applicazione non inizi a occupare troppa memoria.

Questo non sostituisce un profiler, ma può essere una buona soluzione dove non vuoi usare strumenti più complessi, ma vuoi comunque essere avvisato quando, un giorno, la tua app cresce abbastanza da riempire 2, 50 o 200 MB di memoria.

Nota: la documentazione di PHP è molto chiara su questo:

This sets the maximum amount of memory in bytes that a script is allowed to allocate. This helps prevent poorly written scripts for eating up all available memory on a server.

Fonte: Descrizione delle direttive core php.ini , enfasi sulla mia.

    
risposta data 12.08.2013 - 08:22
fonte

Leggi altre domande sui tag