【发布时间】:2011-12-07 15:58:06
【问题描述】:
我当前的 Web 应用程序使用大约 30 个 Contants (DEFINE())。我正在阅读变量更快的东西。如果有一个命名约定来避免变量覆盖,我看到的唯一另一个缺点是这些变量必须以某种方式在每个函数中定义为全局变量。
哪个更快?我在整个应用程序中大量使用这些常量,并且可能会永远在列表中添加更多常量,并且它们在函数和类中使用和使用。
【问题讨论】:
-
“过早的优化是万恶之源”。告诉我,如果你能衡量任何差异;)
-
节省的时间太少了,根本不值得考虑。
-
什么时候值得进行这种优化?每次引用常量时都会产生成本吗?这是否比引用变量时更多?这 30 个常量是每页上的 100 个引用。
-
看起来您没有使用常量来实现它们的用途。一定不是问题,但我建议他们只给一些数字赋予像
define('SECONDS_PER_HOUR', 3600);这样的含义,而不是喜欢有配置值(我只假设你这样做,请不要冒犯)。优化更多是关于更改代码(并使其可测试)的速度,而不是执行速度。由于您概述的问题,计算机越快越有可能陷入执行速度瓶颈。 -
我很确定差异不会是“小”而是不存在,看看 PHP 如何是一种解释性语言,变量或常量都需要解析、查找和它们的以同样的方式从 RAM 中获取值。这不像是有一个优化编译器(即使 PHP 确实翻译成某种字节码)可以在编译时消除常量计算。
标签: php performance optimization variables constants