У меня есть сценарий, который вызывает эту функцию более 100k раз, поэтому я все равно ищу, чтобы выжать из нее немного больше производительности.Оптимизация этой функции
Можете ли вы предложить оптимизацию или альтернативный метод вычисления стандартного отклонения в PHP?
function calcStandardDev($samples){
$sample_count = count($samples);
for ($current_sample = 0; $sample_count > $current_sample; ++$current_sample) $sample_square[$current_sample] = pow($samples[$current_sample], 2);
return sqrt(array_sum($sample_square)/$sample_count - pow((array_sum($samples)/$sample_count), 2));
}
Вы расчета 'array_sum ($ sample_square)/$ sample_count' дважды. –
@OliCharlesworth второй раз это 'array_sum ($ samples)/$ sample_count'. поэтому никакого дублирования нет. – Sirko
Возможно [этот] (http://www.php.net/manual/en/function.stats-standard-deviation.php#97369) быстрее? –