Я новичок в этом форуме и хочу обратиться с вопросом к знатокам PHP.
<?php ## Экономное расходование памяти
function crange($size)
{
for($i = 0; $i < $size; $i++) {
yield $i;
}
}
$range = crange(1024000);
foreach($range as $i) echo "$i ";
// Определяем количество используемой скриптом памяти
echo memory_get_usage()."<br />";
?> //Вот эта задача использует около 355Кб памяти.
<?php ## Не экономное расходование памяти
function crange($size)
{
$arr = [];
for($i = 0; $i < $size; $i++) {
$arr[] = $i;
}
return $arr;
}
$range = crange(1024000);
foreach($range as $i) echo "$i ";
// Определяем количество используемой скриптом памяти
echo memory_get_usage()."<br />";
?>//Эта задача использует около 27Мб памяти.
<?php ## Экономное расходование памяти
for($i = 0; $i < 1024000; $i++) {
echo "$i ";
}
echo memory_get_usage()."<br />";
?>//Эта задача использует около 354Кб памяти.
И так вопрос: Горе от ума или "когда-нибудь понадобится"?
Что лучше, упрощать логику и сам процесс работы скрипта или пользоваться альтернативными вариантами? Если есть наглядный пример, когда экономия расхода памяти с yield лучше, прошу продемонстрировать.
Строго не судить, я новенький.