PHP time () в скрипте / функции vs $ var = time (); - PullRequest
0 голосов
/ 12 июля 2010

У меня есть глобальная переменная, которая $ VARcurrenttime = time (); затем я обычно вызываю эту переменную, когда вычисляю что-либо с этой временной меткой (что очень много). Кто-то предложил мне, что использование time () вместо переменной будет несколько быстрее. Я действительно не знаю, но мог бы кто-нибудь посоветовать мне, потрудиться ли я изменить это или нет?

Ответы [ 2 ]

5 голосов
/ 12 июля 2010

Это:

/* 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 () должна что-то вычислять (даже если это просто поиск в системе), я собираюсь предположить, что это медленнее, чем обращение к переменной, норазница будет настолько незначительной, что о ней совершенно не стоит беспокоиться - что важнее, нужно ли вам использовать одну и ту же временную метку несколько раз или текущее время несколько раз?

РеальноеМировая аналогия - это сравнение записи времени и последующего просмотра этого числа каждый раз, когда кто-то спрашивает вас «сколько времени» или проверяет часы.Они займут примерно одинаковое количество времени, но дадут совершенно разные ответы.

В конечном итоге вы сравниваете скорости двух совершенно разных вещей.Вы не сравниваете скорости двух способов сделать одно и то же.Это как я спрашиваю вас, что быстрее - получить самолет за границей или водить машину на работу.Ответ один быстрее, но они делают совершенно разные вещи.

1 голос
/ 12 июля 2010

Ваш друг не прав.

  • В переменной хранится результат функции, что делает его прямым чтением.
  • Функция должна вычислять значение при каждом вызове,что занимает больше времени.(Точное время, необходимое в зависимости от того, что делает функция.)
...