Hi!
Can you provide some benchmark setups that this could be researched - i.e. describe what was benchmarked and how to reproduce it?
I have already played with this topic. If you don't have an opcode cache lazy loading is a good solution: it is worth loading a code only when it is needed. But if you have opcode cache it is worth to put often used includes into one big file. I used the following test code: <?php $measurements = array(); $_GET += array("includeFileCardinality" => 9); $_GET["includeFileCardinality"] = min(max((int)$_GET["includeFileCardinality"], 1), 9); $start = microtime(TRUE); if ($_GET["includeFileCardinality"] >=1) include_once("include.test/flash_config.php"); if ($_GET["includeFileCardinality"] >=2) include_once("include.test/access.php"); if ($_GET["includeFileCardinality"] >=3) include_once("include.test/awe_config.php"); if ($_GET["includeFileCardinality"] >=4) include_once("include.test/functions.php"); if ($_GET["includeFileCardinality"] >=5) include_once("include.test/domain_constants.php"); if ($_GET["includeFileCardinality"] >=6) include_once("include.test/categories.php"); if ($_GET["includeFileCardinality"] >=7) include_once("include.test/config.php"); if ($_GET["includeFileCardinality"] >=8) include_once("include.test/common.php"); if ($_GET["includeFileCardinality"] >=9) include_once("include.test/errorhandler.lib.php"); $measurements["include - tobb kulon fajl"] = microtime(TRUE)-$start; $start = microtime(TRUE); include_once("include.test/_all_in_one.php"); $measurements["include - egy nagy fajl"] = microtime(TRUE)-$start; if (php_sapi_name() == "cli") { echo serialize($measurements); } else { header("Content-Type: text/html; charset=UTF-8"); displayMeasurments("Eredmények apache modul esetén", $measurements); displayMeasurments("Eredmények CLI módban", unserialize(shell_exec("php ".__FILE__))); echo " <form> Az egyesével include-olt fájlok száma:<br> <select name=\"includeFileCardinality\" size=\"5\"> <option value=\"1\">1</option> <option value=\"2\">2</option> <option value=\"3\">3</option> <option value=\"4\">4</option> <option value=\"5\">5</option> <option value=\"6\">6</option> <option value=\"7\">7</option> <option value=\"8\">8</option> <option value=\"9\">9</option> </select><br> <input type=\"submit\" value=\"Teszt\"> </form> "; } function displayMeasurments($title, $measurements) { $fastestTime = min($measurements); echo "<table border=\"1\">\n<tr><td colspan=\"3\" align=\"center\"><strong>".$title."</strong></td></tr>\n"; foreach($measurements as $testMethod => $elapsedTime) { echo "<tr><td>".$testMethod."</td>\n"; echo "<td>".$elapsedTime."</td>\n"; echo "<td>".round($elapsedTime/$fastestTime*100)."%</td></tr>\n\n"; } echo "</table>\n<br>"; } ?> The files come from a real life project. I get the following result: Results (apache module) include - more files 0.000619888305664 307% include - one big file 0.000202178955078 100% I run the test code a lot of time, I get this characteristics always. Then I tried the code on heavily IO loaded server (x100 req/sec+DB replica) and the difference was bigger (5-600%). Best Regards, Felhő -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php