我有一个网站使用了很多常量,定义如下,例如:
define('CONSTANT', 1)
我目前有大约200个这样的定义。每次加载页面时都会运行此列表。这会严重影响我的性能或内存使用吗?
imrannazar.com/memory-usage-of-constants-in-php-全局常量的内存使用与数组相同。(对于200个条目为40KB)
有理由避免在每次页面加载时列出200个常量,但性能和内存使用情况不在其中。一般来说,回答这些问题的最佳方法是运行基准。无论是否加载200个常量,都可以测量页面加载时间和内存使用情况。测量几千次,看看数字。我想你会发现一个微不足道的区别。微观优化通常是浪费时间。
我想不会。您的脚本是否存在性能问题?如果没有,那就不要担心。如果是这样,那么您做了什么来确定瓶颈在哪里?
如果您需要知道包含和解析包含您的定义的文件需要多长时间,那么我建议您为它计时。
$start = microtime (true);
include ('file_to_include.php');
echo (microtime (true) - $start);
为什么所有的定义?如果你有大量的交通,它可能只会减慢你的速度。如果你把它们全部投入使用,我可以看到,把速度放慢相当好。为什么会有更好的方法(我从来没有需要超过5个常量)
"我从来就不需要超过5个常量"--是的,640kb对每个人都足够了
等等,这是不是意味着你用文字代替?
@泽克斯:显然比尔·盖茨从未说过。
@阿萨夫:我知道,但是那句话(无论是真的还是假的)完全适合讨论,imho;-)
@泽克斯:是这样的:)
洛尔。文字摇滚。直到第二天早上
我认为它不会比读取包含200个常量的文件有更大的影响,然后它会再次被您的磁盘缓存优化。至少它比从数据库中读取200个常量要好。如果您确实关心性能,请安装一个操作缓存,因此每次都不需要任何额外的解析。对于内存,这取决于常量的类型,但不会太多。