Vantaggi / insidie di includere

3

Le pagine web si caricano più velocemente o si caricano più lentamente quando tutte le intestazioni, i piè di pagina e le funzioni di base vengono inserite in file esterni e richiamate utilizzando le istruzioni riportate di seguito? Ci sono altri vantaggi nella separazione di tali contenuti?

<?php include("includes/functions.php"); ?>
<?php include("includes/header.php"); ?>                
<?php require_once("includes/functions.php"); ?>
    
posta Anthony 04.01.2012 - 19:50
fonte

1 risposta

7

Do web pages load faster or load slower when all headers, footers and basic functions are placed in external files and called using the statements below?

Non ci sono problemi di prestazioni. Controlla le metriche in questo blogpost , che sono abbastanza semplice da ricreare da solo. I risultati sono:

------------------------------------
Running for 1000 files: require, require_once, include_once, include
------------------------------------
Results:
                     faster by   og. time
    include_once:          n/a   0.088193
    require_once: +   0.013137   0.101330
         require: +   0.030759   0.118952
         include: +   0.045299   0.133492 

Il benchmark è più orientato al confronto delle funzioni, ma è evidente che i tempi sono estremamente piccoli. Questo altro benchmark mostra:

[11-Jan-2008 11:31:57] Benchmark include 0.039840936660767
[11-Jan-2008 11:31:57] Benchmark require 0.05462384223938

Anche per 1000 file. Quindi a quanto pare, la penalità delle prestazioni è minima. A cuore sia include() , require() e i loro equivalenti _once() sono semplici letture di file system, niente di speciale su di essi che possa suggerire un problema di prestazioni.

Ricorda che se ritieni di essere lento, potresti essere incappato in un bug . Quello a cui mi sono collegato è chiuso, ma non si sa mai. Un buon suggerimento è la prima risposta al bug:

The include process is identical on all Win32 systems, any slowdowns are likely to be related to either the drive speed or the OS internals.

That said one of the reasons you are getting such bad numbers is because you are using a partial path PHP needs to resolve first. This compounded with ZTS mode makes things very slow, change the include statement to use full paths and you'll see much improved performance, not to mention much more consistent numbers.

Non ha fatto alcuna differenza con il bug, ma dovresti sempre averlo in mente, se stai andando per migliaia di include.

Are there any other benefits to separating such content?

Sì, certo. Hai un file per le tue funzioni, uno per la tua intestazione e uno per il tuo piè di pagina, il che significa che non devi riscriverli ogni volta che ne hai bisogno. Non è abbastanza? Non ripeterti .

    
risposta data 04.01.2012 - 20:02
fonte

Leggi altre domande sui tag