Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для Fatmarmelad
34 / 10 / 2
Регистрация: 20.02.2016
Сообщений: 1,613

Реальна ли экономия памяти при использовании генераторов вместо массивов?

25.01.2020, 00:42. Показов 868. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Прочитал в книге Котерова, что при использовании генераторов и использовании массивов для аналогичных задач, экономиться память. Ниже пример

PHP
1
2
3
4
5
6
7
8
9
10
11
12
function crange($size)
{
    $arr=[];
for($i = 0; $i < $size; $i++) 
$arr[] = $i;
 
return $arr;
}
 
foreach(crange(1024000) as $i) echo "$i ";
// Определяем количество используемой скриптом памяти
echo memory_get_usage()."<br />";
И вот , в примере ниже memory_get_usage должен показывать меньшее потребление памяти.
Но у меня примерно одинаковые показатели, а не , как пишет Котеров два порядка разницы.
Может я что-то не так делаю?
PHP
1
2
3
4
5
6
7
8
9
10
function crange($size)
{
for($i = 0; $i < $size; $i++) 
yield $i;
 
}
 
foreach(crange(1024000) as $i) echo "$i ";
// Определяем количество используемой скриптом памяти
echo memory_get_usage()."<br />";
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.01.2020, 00:42
Ответы с готовыми решениями:

Объявление массивов и передача их по ссылке, экономия памяти
Это кусок спецификации: Не могу понять, почему оба примера выше эквивалентны сначала созданию массива t, а затем передаче по...

Утечки памяти при использовании new/delete для двумерных массивов
Добрый день. Суть в том, что есть несколько функций, получающих на вход и возвращающих двумерные массивы. Реализация передачи массивов...

Экономия памяти при упаковке данных
Здравствуйте, уважаемые программисты! Есть такая задача: Задан упорядоченный целочисленный массив длины N = 1000. Значения элементов...

1
Невнимательный
 Аватар для ft4l
3107 / 1281 / 358
Регистрация: 08.02.2013
Сообщений: 7,496
Записей в блоге: 2
25.01.2020, 02:21
попробуйте просто запустить скрипт
PHP
1
2
3
<?php
echo memory_get_usage()."<br />";
echo memory_get_usage(1)."<br />";
Некоторое колличество памяти выделяется скрипту при запуске
и может ,если потребуется, увеличиваться в процессе вплоть до
Code
1
memory_limit    "128M"  PHP_INI_ALL
Добавлено через 4 минуты
хотя не знаю что покажет у Вас , у меня показывает "примерно одинаковые показатели"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.01.2020, 02:21
Помогаю со студенческими работами здесь

Экономия памяти
Здравствуйте, уважаемые программисты! Как разместить информацию о числах из массива, используя как можно меньше памяти?

Экономия памяти
Доброго времени суток, не знаю как надо делать, вот и спросил, допустим есть игра, где шарик просто котится вперед, стоит ли добавлять...

Экономия памяти
Скажите, будет ли второй вариант кода занимать меньше памяти? 1ый вариант: float a; f(a); 2ый вариант: #define a 5.33 ...

Критическая ошибка при использовании short вместо int
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int main() { short password_1, password_2; printf (&quot;Enter password 1: &quot;); scanf...

QDir и экономия памяти
Пишу программу под ARM. Вывожу в таблицу содержимое директории расположенной на Flash с помощью QDir::entryList(). Количество файлов может...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru