我有一个网站,使用了很多常量,这些常量被定义为如下所示的格式,例如:
define('CONSTANT', 1)
我目前有一个像这样的大约200个定义的列表。每次加载页面时都会运行此列表。这是否会严重影响我的性能或内存使用?
define('CONSTANT', 1)
我目前有一个像这样的大约200个定义的列表。每次加载页面时都会运行此列表。这是否会严重影响我的性能或内存使用?
避免在每次页面加载时使用200个常量列表,有很多理由,但性能和内存使用不是其中之一。通常,回答这些问题的最佳方法是运行基准测试。在加载200个常量时,同时测量页面加载时间和内存使用情况。进行数千次测量并查看数据。我怀疑你会发现差异微不足道。微观优化通常是浪费时间的。
$start = microtime (true);
include ('file_to_include.php');
echo (microtime (true) - $start);
为什么要这么多定义?如果你的流量很大,这可能会减慢速度。如果你把它们都用上了,我可以看到它会减缓速度。有什么原因吗?也许有更好的方法(我从来没有需要超过5个常量)
我认为这不会比读取包含200个常量的文件更有影响,而且它还会被磁盘缓存优化。至少它比从数据库中读取200个常量要好。如果你关心性能,安装一个op缓存,因此每次都不需要进行额外的解析。对于内存来说,这取决于您的常量类型,但它不会太多。