Как тестировать код, чтобы увидеть, что работает быстрее - PullRequest
0 голосов
/ 25 мая 2018
$datetime = new DateTime('2013-01-29');
$datetime->modify('+1 day');
echo $datetime->format('Y-m-d H:i:s');

$datetime = new DateTime('2013-01-29');
$datetime->add(new DateInterval('P1D'));
echo $datetime->format('Y-m-d H:i:s');

Может кто-нибудь сказать мне, что быстрее, рекомендуется и занимает меньше памяти при больших операциях в php-файле.Я думаю, что его DateInterval PID.Любой опытный разработчик?

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Для тестирования кода вы можете использовать microtime()

http://php.net/manual/en/function.microtime.php

<?php

echo 'modify: ';
$time = microtime(1);
for ($x = 0; $x < 10000; $x++) {
    $datetime = new DateTime('2013-01-29');
    $datetime->modify('+1 day');
}
echo $datetime->format('Y-m-d H:i:s'); 
$end = microtime(1);
$time = $end - $time;
echo $time . "\n";

echo 'interval: ';
$time = microtime(1);
for ($x = 0; $x < 10000; $x++) {
    $datetime = new DateTime('2013-01-29');
    $datetime->add(new DateInterval('P1D'));
}
$end = microtime(1);
$time = $end - $time;
echo $time . "\n";

Это выводит:

modify: 0.039623975753784 
interval: 0.036103963851929

Как видите, после выполнениявычисление 10000 раз для каждого, DateInterval - более быстрый код.Однако это то, что я бы назвал микрооптимизацией!Там нет большой разницы!

Посмотрите, как это работает здесь https://3v4l.org/pCecn

0 голосов
/ 25 мая 2018
$datetime = new DateTime('2013-01-29');
$datetime->modify('+1 day');
echo $datetime->format('Y-m-d H:i:s');

Это быстрее, потому что в DateInterval вам потребуется использовать спецификацию интервала, которую трудно прочитать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...