【问题标题】:PHP time() in script/function vs $var=time();脚本/函数中的 PHP time() 与 $var=time();
【发布时间】:2010-07-12 06:50:16
【问题描述】:

我有一个全局变量 $VARcurrenttime = time();然后我通常在计算具有该时间戳的任何内容(很多)时调用该变量。有人向我建议,使用 time() 而不是变量会更快一些。我真的不知道,但有人可以建议我是否会费心改变这个吗?

【问题讨论】:

  • 如果你真的认为这是你应该关心的事情,那么你应该谷歌preemptive optimization并开悟。如果您正在考虑这些性能细节,那么您还应该考虑通过简单地使用编译语言而不是 PHP 之类的语言可以获得多少性能提升。
  • 除非您不断更新它(这似乎违背了它的目的),否则您的全局变量将在您的应用程序处理过程中保持不变。这是你想要的吗?
  • @Shirik 他们是否删除了对 cme​​ts 的支持?无论如何都认为这是 +1。

标签: php date time timestamp


【解决方案1】:

这个:

/* Real-World Time is 2010/01/01 12:00:00 */
$var = time(); /* $var = 2010/01/01 12:00:00 */
$a = doSomething($someOtherVar, $var); /* Passes 2010/01/01 12:00:00 */
$b = doSomething($someOtherVar, $var); /* Passes 2010/01/01 12:00:00 */
$c = doSomething($someOtherVar, $var); /* Passes 2010/01/01 12:00:00 */
/* Real-World Time is 2010/01/01 12:00:40 */

花费几乎完全相同,但非常-略少时间如下:

/* Real-World Time is 2010/01/01 12:00:00 */
$a = doSomething($someOtherVar, time()); /* Passes 2010/01/01 12:00:00 */
$b = doSomething($someOtherVar, time()); /* Passes 2010/01/01 12:00:07 */
$c = doSomething($someOtherVar, time()); /* Passes 2010/01/01 12:00:23 */
/* Real-World Time is 2010/01/01 12:00:40 */

但它也有很大不同,因为即使他们两个的实际时间大致相同,但每次通话都会获取最新时间。根据您的需要,这是可取的还是不可取的。

由于 time() 必须计算一些东西(即使它只是一个系统查找),我将假设它比引用变量慢,但差异将非常接近可以忽略不计,以至于它完全不值得担心 - 更重要的是您需要多次使用相同的时间戳还是多次使用当前时间?

现实世界的类比是比较记下时间,然后在每次有人问您“现在几点”或查看手表时查看该数字。他们将花费大约相同的时间,但给出的答案却截然不同。

最终,您是在比较两个完全不同的事物的速度。您不是在比较两种方法的速度来做同样的事情。就像我问你,哪个更快——在海外坐飞机还是开车去上班。答案是一个更快,但它们做的事情完全不同。

【讨论】:

    【解决方案2】:

    你的朋友错了。

    • 变量存储函数的结果,使其可以直接读取。
    • 该函数必须在每次调用时计算值,这需要更长的时间。 (所需的确切时间取决于函数正在执行的操作。)

    【讨论】:

      猜你喜欢
      • 2010-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多