I discovered such a function today when I was reading the Arr class in the kohana source code
$array = array();
for ($i = $step; $i <= $max; $i += $step)
{
$array[$i] = $i;
}
return $array;
}
When I saw this, I found that PHP’s native functions can also achieve this function. Suddenly I thought of what a senior said about PHP performance optimization that I had heard before - PHP provides us with so many native functions. We try to use native functions to solve problems. So I did a test to see how much faster the performance of PHP's native functions is compared to the one I wrote myself. The functions to be tested include the native function range() and the above function _range(). The underline is added here because overriding the native function range() will report an error "Fatal error: Cannot redeclare range() in".
Tested using native functions and custom functions respectively. When generating all multiples of 3 between 0 and 1000000, the results were beyond my expectations:
The first is the result of using native functions:
The following is the result of using a custom function:
In order to make the results more accurate, I am making a statistical chart
Number of statistics Native function range() Custom function _range()
(0,1000000,3) 5.155E-3s 27.5530M 1.907E-5s 0.1241M
(0,1000000,2) 7.479E-3s 40.2688M 1.811E-5s 0.1241M
(0,1000,1) 8.16E-5s 0.1620M 2.649E-5s 0.1241M
It can be seen from the table that custom functions save memory and time when generating random numbers compared to native functions. Moreover, native functions consume a lot of memory and time when generating a large number of random numbers, while custom functions perform better in this regard. Well done, the memory generated and the time consumed are basically stable. It seems that what the previous senior said may not be completely correct, but it should be noted here that our custom function here can only generate numbers, while the native range can also generate letters. Yes, but I think it shouldn’t be too difficult to add a letter to this custom function~
It seems that the Kohana official has a good understanding of the range function and the complexity of this function in the PHP kernel. That’s why this small optimization can do so well. It’s amazing! ! !