这次非常简单的问题,基本上我有一组文件夹,其中一些包含我想在运行我的站点脚本时自动加载的文件。但是我不想指定要自动加载的文件,因为我希望该过程是动态的,并且我希望能够动态创建和删除不同的文件。所以当然最简单的解决方案是获取目录中的文件夹列表并构建自动加载文件的路径,如果文件存在则脚本包含它们。但是,我的问题是这会对我的脚本的性能产生多大影响?它实际上是一个我想稍后发布的框架,所以性能是一个很大的问题。有任何想法吗?
4 回答
1
这取决于您的磁盘速度、文件系统和目录的大小。无论如何,必须动态加载目录以获取文件列表将比加载静态列表花费更长的时间;可以接受多少增加取决于您的要求。
如果这是一个选项,缓存该列表可能会有所帮助。
于 2011-02-17T22:26:00.270 回答
0
自动加载很棒,虽然它不是“免费的”,但对性能的影响并不明显。当然,您可以衡量这一点并在需要时进行重构。
这是我的自动加载器:
spl_autoload_register(
function ($className) {
$possibilities = array(
APPLICATION_PATH.'beans'.DIRECTORY_SEPARATOR.$className.'.php',
APPLICATION_PATH.'controllers'.DIRECTORY_SEPARATOR.$className.'.php',
APPLICATION_PATH.'helpers'.DIRECTORY_SEPARATOR.$className.'.php',
APPLICATION_PATH.'models'.DIRECTORY_SEPARATOR.$className.'.php',
APPLICATION_PATH.'views'.DIRECTORY_SEPARATOR.$className.'.php'
);
foreach (explode(PATH_SEPARATOR, ini_get('include_path')) as $k => $v) {
$possibilities[] = $v.DIRECTORY_SEPARATOR.$className.'.php';
}
foreach ($possibilities as $file) {
if (file_exists($file)) {
require_once($file);
return true;
}
}
return false;
}
);
于 2011-02-17T22:27:25.623 回答
0
这取决于。
尝试你的方法和措施。您以后可以随时添加缓存。或者诉诸自动加载。
于 2011-02-17T22:28:55.003 回答