我建立一个网站,其配置数据由php file
举行,变量不超过15行的配置文件中的表演。差异在PHP
一切运作良好,到目前为止,但我现在面临的定义更多的变量,并研究了一点,我发现一个article about Application Configuration in PHP,其结论指出php files
正在分析他们是如何扩展当wost选项(需要Databases
是更好的选择)。
什么是决定使用配置文件的格式时,最值得推荐的选择吗?
我建立一个网站,其配置数据由php file
举行,变量不超过15行的配置文件中的表演。差异在PHP
一切运作良好,到目前为止,但我现在面临的定义更多的变量,并研究了一点,我发现一个article about Application Configuration in PHP,其结论指出php files
正在分析他们是如何扩展当wost选项(需要Databases
是更好的选择)。
什么是决定使用配置文件的格式时,最值得推荐的选择吗?
对不起,什么?!分析时,他们如何扩展(数据库是更好的选择)
PHP文件是wost选项。
这只是很奇怪,因为你可以很好地扩展PHP - 只需设置另一台服务器,就是这样,你已经扩展了你的PHP两次。
也请记住,有指令优化,将继续解析文件内容在内存中。
而缩放数据库是火箭科学。扩展数据库是一个棘手的过程,涉及良好的数据库内部和操作系统知识。
所以我不会参考那篇文章。
PS:看了文章:
当脚本运行时,结果是平均约0.052640马克,使这个迄今为止最慢的方法至今。
我无法实现只是实例变量如何可以比从数据库中读取(其包括连接开销,从表开销读取,发送数据的开销和到底同一实例变量处理)比较慢。根据定义,X
不能超过X + Y
。
是的,我真的觉得和你一样。这就是我选择php文件来保存配置变量的原因。无论如何,当文章谈论每种方法如何“缩放”时,它们指的是在增加变量数量时它的行为方式,而不是在设置更多应用程序实例时。那是你的意思吗? –
我能想到的唯一原因是PHP数组最慢的方法是解析大型PHP文件和数组。为了解决这个问题,请使用opcode cacher,以便它不需要每次都解析配置,或解析配置,序列化并在可能的情况下使用序列化版本。 – drew010
在我看来,如果你可以存储在数据库中的配置,并在内存中缓存的结果,表现应该是非常非常好。
但是,如果配置存储在数据库中,它需要大量的加入得到它,没有缓存,性能可能会比使用PHP文件最差。
在另一方面,如果你存储在返回数组中的PHP文件配置:
//config.php
return array(
'configitem1' => 'xyz',
)
//then use
$config = require_once('config.php);
的表现应该不会太差。显然,每个请求都会有磁盘IO,所以如果您需要大量文件,那么您可能会遇到一些性能问题。如果需要调用大量文件,可以将结果缓存到memcached或APC中以消除磁盘IO性能问题。
最后,您可以使用XML或YAML文件。这些将是性能最低的,因为您需要加载和读取文件,然后解析它。
就个人而言,我认为将是存储在应用程序的用户可能需要修改它的数据库配置。例如:
总会有配置需要在文件存储:
但是,存储在文件中的配置可以缓存在memcached或APC中,所以您的应用程序仍应该是高性能的。
所以我的2美分:
这是为什么文章是错误的:
Type First Run Second Run
Ini File 0.000421 0.021381
XML File 0.000717 0.
PHP File 0.000450 0.052640
Database 0.005533 0.014184
说“第一次运行”和“第二轮”清楚地表明,这些都不是平均结果。作者只是跑了两次,没有一个真正的分析器,并发布了一个毫无意义的数字。
“规模”在哪个方向?文件中有更多条目?更多需要配置的服务器? – deceze
“缩放”与文件中的更多条目。 –