
guide
Tutti i linguaggi per diventare uno sviluppatore di app per Android.
Presentazione e uso dell’estensione Alternative PHP Cache (APC) che, attraverso un codice intermedio, ottimizza e gestisce la cache delle applicazioni PHP
PHP è uno dei linguaggi di scripting per il web più diffuso; nonostante nasca da un progetto amatoriale di uno sviluppatore PERL, l’engine che risiede dietro il motore di compilazione ed esecuzione è stato modificato e migliorato in continuazione negli ultimi anni, sia per aggiungere nuove funzionalità per gli sviluppatori di estensioni, sia per rendere l’intero progetto molto più stabile e performante. Nonostante l’esecuzione di codice PHP non sia eccessivamente lenta, spesso si sente la necessità di poter sfruttare metodi che permettano di diminuire l’utilizzo di risorse sul server e facciano aumentare il numero di richieste gestite; parte di questi obiettivi possono essere raggiunti implementando operazioni di caching dell’output e di alcune richieste, ma spesso non basta.
In PHP, ogni volta che una pagina contenente del codice di scripting viene richiamata, questa viene analizzata e precompilata in codice intermedio, che successivamente viene leggermente ottimizzato ed eseguito. Come è possibile dedurre, il processo di compilazione ed ottimizzazione viene effettuato sempre, indipendentemente dal fatto che la pagina sia stata modificata o meno. Questo comporta una serie di rallentamenti che potrebbero essere evitati salvando in memoria il risultato dell’ottimizzazione come fanno alcuni altri linguaggi per lo sviluppo web (vedasi JSP per esempio).
APC (Alternative PHP Cache) è un’estensione nativa per PHP che svolge principalmente il compito di precompilare, ottimizzare e mantenere in memoria il codice intermedio associato agli script PHP in modo che venga bypassato questo passaggio dopo la prima richiesta effettuata ad un file PHP.
Probabilmente quando uscirà PHP 6 questi includerà nativamente il supporto ad APC, alla quale verranno fatte alcune migliorie ed ottimizzazioni al fine di adattarsi alle modifiche che verranno apportate allo Zend Engine. Aspettando quel tempo, possiamo comunque installare ed utilizzare APC poiché essa èuna libreria nativa compatibile sia con PHP 4 sia con PHP 5.
Il processo di installazione è il solito che si usa seguire quando è necessario aggiungere nuove librerie native per PHP. Nel caso di utenti Windows è possibile scaricare la DLL precompilata della libreria (che potete trovare direttamente sul sito di PHP), posizionarla all’interno della directory contenente le altre estensioni ed infine abilitarla da file php.ini utilizzando la direttiva
extension=php_apc.dll
Nel caso invece ci si trovi su Linux o su un altro ambiente Unix like, è possibile compilare manualmente la libreria attraverso il comando phpize
. Per prima cosa recuperiamo i sorgenti dal sito di PECL e decomprimiamoli all’interno di una cartella del filesystem. Successivamente accediamo alla cartella ed eseguiamo le seguenti istruzioni (è possibile che alcune richiedano i permessi di root – oltretutto la directory in cui posizionare il modulo può dipendere dalle opzioni di compilazione e configurazione eseguire durante l’installazione di PHP):
phpize ./configure --enable-apc --enable-mmap make cp modules/apc.so /usr/local/lib/php
Indipendentemente dal sistema operativo che stiamo utilizzando è necessario riavviare il Web server affinché la libreria risulti disponibile per l’utilizzo.
Dopo l’installazione possiamo procedere con la configurazione impostando alcune direttive all’interno del file php.ini. Nonostante le opzioni abbiano valori di default, consiglio sempre di impostarli manualmente (soprattutto se si sta operando su un server di produzione) in modo da poter adattare il comportamento della libreria alle nostre esigenze ed essere in grado di comprendere i valori di configurazione nel caso in cui dovesse capitare di doverli modificare successivamente. La maggior parte di queste opzioni di configurazione (a parte apc.enabled
ed apc.optimization
) possono essere impostate solamente nel file php.ini.
Vediamo le opzioni più importanti ed il loro utilizzo (le altre opzioni possono essere apprese dalla documentazione ufficiale della libreria sul sito ufficiale di PHP):
Nonostante molte operazioni della libreria APC vengano svolte in modo trasparente durante l’esecuzione dello Zend Engine è possibile interrogare APC ed utilizzare alcune caratteristiche interessanti esposte dalla libreria.
Spesso può risultare utile, soprattutto in fase di debugging o quando avvengono errori ed eccezioni inaspettate, conoscere lo stato della cache di APC per poter comprendere se questa ha influito sul malfunzionamento. Per ottenere un array associativo contenente i metadati relativi allo stato attuale della cache utilizziamo la funzione apc_cache_info.
La cache viene ripulita automaticamente da APC in base alle direttive specificate in fase di compilazione utilizzando delle funzioni avanzate di garbage collection che permettono anche il riciclo della cache marcata per l’eliminazione. Nel caso fosse necessario è possibile comunque ripulire la cache manualmente utilizzando la funzione apc_clear_cache.
Non so se è una cosa nota a tutti, ma definire costanti attraverso la funzione define
di PHP è un’operazione molto lenta. Sebbene sia buona norma non abusare di questa funzione, fortunatamente possiamo sfruttare APC per definire costanti in modo molto veloce: la funzione apc_define_constants accetta come primo parametro una stringa per identificare con un nome univoco un gruppo di costanti, come secondo parametro un array chiave/valore che rappresenta le costanti da definire ed opzionalmente un terzo parametro che indica se trattare le costanti come case sensitive o no; dopo aver definito questo gruppo di costanti, è possibile utilizzare apc_load_constants per inserirle all’interno dello scope globale specificando come unico parametro la stringa che rappresenta il gruppo di costanti da caricare. Anche in questo caso abbiamo a disposizione un parametro aggiuntivo che indica se trattare le costanti in modo case sensitive o no.
L’ultima, utilissima, funzionalità di APC è quella che permette di salvare in memoria condivisa delle variabili in modo che risultino persistenti tra richieste diverse. Possiamo salvare risultati di interrogazioni o elaborazioni molto complesse, assicurandoci che queste non vengano più eseguite per un determinato lasso di tempo. Tramite la funzione apc_store, che accetta come parametri l’identificativo della variabile da salvare, il valore della variabile ed un numero indicante i secondi di vita della stessa, possiamo salvare in memoria condivisa dei dati. Successivamente questi possono essere recuperati attraverso apc_fetch che accetta come parametro l’identificativo riferito ai dati salvati o rimossi manualmente utilizzando apc_delete.
Dalle ultime versioni della libreria è possibile passare un array alla funzione apc_fetch in modo da recuperare in un colpo solo tutti i valori necessari, evitando chiamate ripetitive alla funzione. È utile ricordare anche che apc_store pare non funzionare correttamente nel caso venga passato come secondo parametro un array; per ovviare al problema è possibile utilizzare l’oggetto ArrayObjects
disponibile con PHP 5.
Se vuoi aggiornamenti su Ottimizzare PHP con Alternative PHP Cache (APC) inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
In questo video vedremo come utilizzare Combofix, uno dei più potenti strumenti che permettono di eliminare dal sistema operativo tutte […]
Tutti i linguaggi per diventare uno sviluppatore di app per Android.
Come creare applicazioni per il Web con PHP e MySQL per il DBMS.
Tutte le principali tecnologie per diventare uno sviluppatore mobile per iOS.
I fondamentali per lo sviluppo di applicazioni multi piattaforma con Java.
Diventare degli esperti in tema di sicurezza delle applicazioni Java.
Usare Raspberry Pi e Arduino per avvicinarsi al mondo dei Maker e dell’IoT.
Le principali guide di HTML.it per diventare un esperto dei database NoSQL.
Ecco come i professionisti creano applicazioni per il Cloud con PHP.
Lo sviluppo professionale di applicazioni in PHP alla portata di tutti.
Come sviluppare applicazioni Web dinamiche con PHP e JavaScript.
Fare gli e-commerce developer con Magento, Prestashop e WooCommerce.
Realizzare applicazioni per il Web utilizzando i framework PHP.
Creare applicazioni PHP e gestire l’ambiente di sviluppo come un pro.
Percorso base per avvicinarsi al web design con un occhio al mobile.
Realizzare siti Web e Web application con WordPress a livello professionale.
PHP 7.4. Tutte le novità e le funzionalità ora deprecate della nuova versione del linguaggio di scripting server side.
Impariamo a gestire i form HTML e l’invio dei dati con PHP tramite degli esempi pratici nei quali vengono utilizzati i metodi GET e POST.
PHP. Nella versione 7.4 il linguaggio migliora la tipizzazione delle proprietà. Scopriamo come funziona e quali valori di default sono utilizzabili.
Come creare un’applicazione per la gestione di un negozio di commercio elettronico con il framework PHP Laravel. Una guida completa che, partendo dalla configurazione di un ambiente di sviluppo basato su Laravel, descrive nel dettaglio tutti i passaggi necessari per pubblicare un e-commerce con cui promuovere e vendere i propri prodotti online