2014-11-29 17 views
15

Ciao a tutti solo una domanda relativa a OPcache perché non l'ho capito e ho trovato una risposta su Google:Che cos'è l'estensione APCu nella cache di userland in PHP?

Quando parliamo di caching in userland, che cosa significa? So che PHP è pre-bundled con la nuova estensione di Zend OPcache e che questa estensione memorizza il codice op in ram per non sottolineare troppo il processore che dovrebbe convertire in codice op la sorgente PHP ad ogni richiesta, ma che dire dell'APCu quando dicono che implementa il caching in userland?

Che cos'è il caching di userland? È possibile mantenere APCu e Zend OPcache insieme o no? Dovrebbe essere usato Zend OPcache invece di APCu?

Grazie per l'attenzione, spero che qualcuno chiarisca i miei dubbi!

risposta

15

APCu è stato sviluppato da Joe Watkins in risposta a OPcache. APC supporta sia il caching opcode che il caching dei dati, ma è stato ostacolato da problemi di stabilità nel supporto del caching opcode da PHP 5.4. Dopo che Zend Inc ha aperto la fonte di Opcache e l'ha posta sotto la licenza PHP, è diventata la cache di codice operativo principale e preferita da PHP 5.5. Ma supporta solo la cache opcode e non la cache dei dati.

di Joe APCu è in sostanza una versione ridotta di APC che include solo il codice di caching dei dati, ed è progettato per essere utilizzato insieme OpCache lato se avete bisogno di caching dei dati.

Si noti che mentre la cache Opcode è trasparente a livello di codice sorgente, la cache dei dati non lo è. La tua applicazione deve essere codificata in modo esplicito per usarla. (Anche se le applicazioni PHP standard come Wordpress, Drupal, phpBB, MediaWiki, ... includono questo supporto per impostazione predefinita).

+3

Quindi APCu implementa una funzionalità di memorizzazione nella cache dei dati in memoria come il sistema di memorizzazione nella cache di Memcached? Ho ragione? – tonix

+4

Simile ma diverso in quanto Memcached è fuori processo e compatibile con RPC, quindi è clusterable e intrinsecamente più scalabile, anche se con un maggiore overhead per chiamata. APCu utilizza una regione di memoria condivisa e la libreria spinlock PostgreSQL così la maggior parte delle chiamate API sono in-process senza attese, quindi sono estremamente leggere, ma non scalabili all'esterno del server. – TerryE

+0

Grazie per la risposta e la spiegazione! – tonix