【问题标题】:Can defining a lot of constants cause performance or memory problems?定义大量常量会导致性能或内存问题吗?
【发布时间】:2011-10-27 02:08:27
【问题描述】:

我有一个使用大量常量的网站,这些常量的定义是这样的,例如:

define('CONSTANT', 1)

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

【问题讨论】:

标签: php performance memory


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      有理由避免在每次页面加载时列出 200 个常量,但性能和内存使用不会在其中。一般来说,回答这类问题的最佳方法是运行基准测试。在加载和不加载 200 个常量的情况下测量页面加载时间和内存使用情况。测量几千次并查看数字。我怀疑你会发现一个微不足道的差异。微优化通常是浪费时间。

      【讨论】:

        【解决方案4】:

        为什么所有的定义?如果您有很多流量,它可能只会减慢您的速度。如果您将它们全部使用,我可以看到放慢速度非常好。是什么原因可能有更好的方法(我从来不需要超过 5 个常量)

        【讨论】:

        • "我从来不需要超过 5 个常量" --- 是的,640kb 对每个人来说都足够了
        • 等等,这是否意味着您使用文字代替?
        • @zerkms:显然是Bill Gates never said that
        • @Asaph:我知道,但那句话(无论是真实的还是虚构的)完全适合讨论,恕我直言;-)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-11-15
        • 1970-01-01
        • 1970-01-01
        • 2014-12-04
        • 2015-02-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多