[英]Passing calculated javascript variable value to text field using php codeigniter
[英]Is there a benefit to using a calculated value in a PHP constant?
const COLOR_MAX = (2 << 7) - 1;
我知道 OP 对其他语言(如c和c++)有一些经验,其中此类操作更常见,并且可能对性能或其他方面有好处。
在内存或处理时间方面,使用位移和减法后的计算值定义常量是否有任何优势,或者是否足够简单,只需使用该值:
const COLOR_MAX = 255;
我尝试比较两个示例的执行时间和内存使用情况:
<?php
$start = hrtime(true);
const COLOR_MAX = (2 << 7) - 1;
//const COLOR_MAX = 255;
$eta = hrtime(true) - $start;
$memUsage = memory_get_usage();
echo 'end: '.($eta / 1e+6).' memory usage: '.$memUsage . PHP_EOL;
移位的结果,运行 3 次:
end: 0.003254 memory usage: 392136
end: 0.003289 memory usage: 392136
end: 0.00338 memory usage: 392136
结果为静态值,运行 3 次:
end: 0.003421 memory usage: 392136
end: 0.003095 memory usage: 392136
end: 0.003705 memory usage: 392136
内存或执行时间的任何差异似乎都可以忽略不计。
注意:使用 PHP 7.4.6 测试。
即使在 C 中,它也不是真正的优化,因为 const 将在编译时计算。 使用位移而不是输入字面帮助提醒“这将使用这么多位,占用这个插槽”,如果将有大量按位操作,例如在一个字节中填充多个值(或在 PHP 情况下,在单个变量)
它是一个常量值,而不是编译器宏。 当解析类文件时,它只会被评估一次,并且这样做所需的时间/资源量非常小,即使您要对数百万或数十亿次迭代进行基准测试,也会在误差范围内。
除了肉袋阅读/编写代码的偏好之外,以一种或另一种方式做这件事没有任何后果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.