PHP è un'architettura nulla condivisa. Questo ha i suoi vantaggi e svantaggi.
Uno svantaggio è che non è facile fare qualcosa del genere. Non c'è molto di uno stato che può essere memorizzato da qualche parte.
Ho fatto alcuni test rapidi e dopo aver effettuato l'accesso, il boostrap sembra richiedere circa il 17% circa del tempo totale e oltre il 50% di questo sta effettivamente caricando tutti i file .module e .inc. Non è qualcosa che puoi archiviare in memcache. Inoltre, non sembra importare molto se uso memcache o la cache del database.
Ho cercato di ottenere alcuni risultati quando la cache della pagina era abilitata, ma Xhprof non sembra restituire risultati affidabili allora; il tutto sembra semplicemente essere troppo veloce. Ma anche in questo caso, la parte più importante riguarda l'esecuzione di hook di init / exit e il caricamento dei file. Ho riscontrato un problema interessante lì: sembra che il modulo Utente stia rallentando seriamente la risposta della pagina cache perché innesca il registro a causa del controller di entità nel file .module.
Detto questo, David Strauss ha mostrato alcuni lavori sperimentali a Copenaghen in cui ha creato un'istantanea della memoria dopo l'avvio del bootstrap e poi tornando a quello una volta che la pagina è stata pubblicata. Ha usato Drupal 6 per questo. Dopo aver esaminato i numeri sopra, immagino che i guadagni prestazionali di farlo in Drupal 7 sarebbero un po 'più piccoli. Uno dei motivi è che la connessione al database è caricata in modo pigro (e puoi andare abbastanza lontano nel bootstrap quando usi ad esempio Memcache prima di dover eseguire la prima query) e c'è molto che viene memorizzato nella cache.
Ciò che è veramente brutto in Drupal 7 è il livello di rendering con questi enormi array e infinite ricorsioni e loop. Quello praticamente annulla tutto il lavoro prestazionale svolto in Drupal 7. Vediamo come appare in Drupal 8, se Twig lo rende fondamentale.
Infine, sui vantaggi citati. Un grande vantaggio è che i porri di memoria sono piuttosto irrilevanti perché tutto viene liberato dopo ogni richiesta. Ho visto molte applicazioni Java in cui l'utilizzo della memoria aumenta costantemente e hanno bisogno di riavvii regolari.