Я тестирую свой PHP-код, чтобы попытаться выяснить, какие методы кодирования приводят к самому быстрому выполнению. Я хочу, в конечном счете, проверить весь мой PHP-код, который нуждается в тестировании, чтобы попытаться создать наиболее быстро исполняемый код, который я могу. Я начинаю с простым примером, на моей домашней странице, используя микропоры(), чтобы записать время до того, как INSERT выполняется оператор, и время после того, как он выполняет, а затем повторяя разницу следующим образом:Насколько точным является microtime()?
//Lots of code
$microtime1 = microtime();
$sql1=("INSERT INTO Table (value1,value2,value3,value4,value5,value6,value7) VALUES
('$value1','$value2', '$value3', '$value4', '$value5', '$value6', 'value7')");
if (mysqli_query($sql1)) {
$microtime2 = microtime();
$Difference = $microtime2 - $microtime1;
echo "<SCRIPT>
alert('$Difference');
location = 'home.php';
</SCRIPT>";
} else {
$message = 'The site is having some technical difficulties. Please try again!";
echo "<SCRIPT>
alert('$message');
location = 'home.php';
</SCRIPT>";
}
//More code
Более 10 испытаний , Я инициировал этот запрос, введя одну и ту же трехбуквенную строку ('ddd') в одно и то же текстовое поле ввода и нажав ту же кнопку (без каких-либо других пользователей, кроме меня), запись $ Разница каждый раз. Я удивляюсь тому, насколько велика разница в данных. Для этих 10 испытаний стандартное отклонение в $ Разница составляла 40% от среднего значения $ Разница. Есть ли лучший способ сделать это, о котором я не знаю? Или мне нужно будет выполнить 10-20 проб для каждой функции, чтобы получить полезную среднюю величину $ Разница для моего другого кода?
что вы * на самом деле * пытаетесь достичь? Лучший способ сократить время запросов - уменьшить количество запросов, оптимизировать таблицы с индексами и оптимизировать запросы для использования этих индексов. То, что запросы различаются, может быть связано с многими вещами, но я сомневаюсь, что одна вставка - это что-то, о чем можно беспокоиться. Если вы выполняете тысячи вставок, вам лучше попытаться объединить их в один запрос. Кроме того, всегда рекомендуется использовать подготовленные операторы, особенно при повторении аналогичного запроса несколько раз с разными значениями. – Mike
Чтобы ответить на ваш вопрос, микро-время является точным. Гораздо более вероятно, что запрос на самом деле составляет 40% от среднего. – Mike
В дополнение к сокращению числа запросов и оптимизации запросов, я также пытаюсь написать наиболее быстро исполняемый код. Считаю это любопытством, так как я раньше был экспериментальным химиком :) Я относительно новичок в кодировании, но мне трудно полагать, что все алгоритмы создаются одинаково. Например, чтобы проверить, является ли строка членом массива, я могу использовать функцию in_array, или я могу использовать цикл foreach в сочетании с оператором сравнения, сравнивая каждый элемент массива со строкой, чтобы увидеть, есть ли точная совпадение. Я хотел бы, чтобы номер сказал мне, какой метод быстрее! –