2009-11-28 14 views
5

Ho una libreria PHP da 1,9 MB che includo all'inizio dei miei script. Contiene tutti i miei oggetti di database, i metodi, ecc. Necessari per il mio sito web. Ci vogliono da 0,1 a 0,3 per includerlo ogni volta.Come posso migliorare le prestazioni di "include() s" in PHP?

Uso eAccelerator per memorizzare in cache il bytecode di questo file. Cos'altro posso fare per ottimizzare le prestazioni di questo 'include'?

+3

Per curiosità, quanto tempo ci vuole per a) generare il resto della pagina, b) scaricare la pagina? –

+0

A seconda della pagina e della quantità di informazioni che carica, può richiedere da 0 a 0,5 secondi per generare il resto della pagina e in genere da 0,2 a 1,1 s. per scaricare la pagina. Voglio spremere il più possibile dalla pagina. : P –

risposta

8

Dividerlo in moduli e caricare i blocchi solo quando necessario. Penso che sia l'unico modo per migliorare davvero le prestazioni, sono stato nella stessa situazione e solo così ho risolto. È un sacco di codice da includere, nella mia mente, troppo. Scommetto una birra che non ti serve tutti i 1.9MB di codice in ogni contesto.

+0

Penso che se avessimo fatto quella scommessa probabilmente vinceresti. : P Ho letto di dividere la libreria in moduli. La domanda di design ora diventa: qual è la migliore metodologia per dividere i file? Sto anche considerando l'utilizzo dei metodi integrati __autoload di php per includere le classi come vengono chiamate, ma questo sembra avere un po 'di overhead. –

+2

Per rispondere, dovresti elaborare un po 'su che tipo di progetto si tratta e in cosa consiste la libreria. In generale, ovviamente, li dividerei in modo tematico in gruppi di funzioni/oggetti più frequentemente usati. L'immagine funziona qui, le funzioni di sicurezza lì ... Ma questo è qualcosa che solo tu puoi decidere. –

+0

È un progetto di grandi dimensioni con diversi sottoinsiemi di funzionalità. La libreria è composta da oggetti/metodi e mappe di schemi di database di immagini, sicurezza, amicizie, utenti, gruppi, messaggi, "pokes", ecc. Ho paura che la funzionalità utilizzata in ogni pagina non sia ben mappata, quindi creare una mappa di richieste alle librerie richieste sarebbe la mia preoccupazione principale in quanto sarebbe il mio peggior momento. –

Problemi correlati