关于php:可以定义很多常量会导致性能或内存问题吗?

Can defining a lot of constants cause performance or memory problems?

我有一个网站使用了很多常量,定义如下,例如:

1
define('CONSTANT', 1)

我目前有大约200个这样的定义。每次加载页面时都会运行此列表。这会严重影响我的性能或内存使用吗?


有理由避免在每次页面加载时列出200个常量,但性能和内存使用情况不在其中。一般来说,回答这些问题的最佳方法是运行基准。无论是否加载200个常量,都可以测量页面加载时间和内存使用情况。测量几千次,看看数字。我想你会发现一个微不足道的区别。微观优化通常是浪费时间。


我想不会。您的脚本是否存在性能问题?如果没有,那就不要担心。如果是这样,那么您做了什么来确定瓶颈在哪里?

如果您需要知道包含和解析包含您的定义的文件需要多长时间,那么我建议您为它计时。

1
2
3
$start = microtime (true);
include ('file_to_include.php');
echo (microtime (true) - $start);


为什么所有的定义?如果你有大量的交通,它可能只会减慢你的速度。如果你把它们全部投入使用,我可以看到,把速度放慢相当好。为什么会有更好的方法(我从来没有需要超过5个常量)


我认为它不会比读取包含200个常量的文件有更大的影响,然后它会再次被您的磁盘缓存优化。至少它比从数据库中读取200个常量要好。如果您确实关心性能,请安装一个操作缓存,因此每次都不需要任何额外的解析。对于内存,这取决于常量的类型,但不会太多。