- microtime: documentation ( source)
- shuffle: documentation ( source)
- range: documentation ( source)
<?php
function getNumbers($count) {
$numbers = range(1, $count);
shuffle($numbers);
return $numbers;
}
function sumOfRemaindersOriginal($numbers) {
$resSum = 0;
$len = count($numbers);
if($len == 1)
return 0;
for($i=0; $i<$len; $i++)
for($j=0; $j<$len; $j++)
$resSum += $numbers[$i]%$numbers[$j];
return $resSum;
}
function sumOfRemainders($numbers) {
$sum = 0;
if (1 === count($numbers)) {
return 0;
}
foreach ($numbers as $a)
foreach ($numbers as $b)
$sum += $a % $b;
return $sum;
}
print "Setting up ";
$start = microtime(true);
$numbers = getNumbers(2000);
$end = microtime(true);
print count($numbers) . " numbers in " . ($end - $start) . "\n";
print "Running 'sumOfRemaindersOriginal' in ";
$start = microtime(true);
$x = sumOfRemaindersOriginal($numbers);
$end = microtime(true);
print ($end - $start) . " Result: " . $x . "\n";
print "Running 'sumOfRemainders' in ";
$start = microtime(true);
$x = sumOfRemainders($numbers);
$end = microtime(true);
$time = $end - $start;
print ($end - $start) . " Result: " . $x . "\n";
This script was stopped while abusing our resources