Смотрите
Во-первых, это снова перевод.
То есть надо чётко разделять - это не команда ВК делится своим практическим опытом, а девочка контент-менеджер, скорее всего студентка инъяза, просто перевела первую попавшуюся в интернете статью. Весь контент которой - это важно понимать - высосан из пальца, и не имеет отношения к реальной разработке.
Я оригинал раньше не видел, но статья построена по известной схеме, которая сводится к "по отдельности забирает объекты из API" - вот буквальная цитата.
То есть буквально весь смысл статьи - это "если надо экономить память, то надо не забирать сразу 200 тыщ миллионов строк из API, а забирать по одному". Прямо вселенская мудрость, без этой статьи никто бы не догадался.
Суть статьи не в том, как экономить память, а в том, как делать конвейеры с помощью генераторов. про функциональное программирование. Когда фактически вся программа - это вложенные вызовы функций.
А задача экономии памяти решается стандартно - выборкой элементов по одному в цикле. А уж явный это цикл - или завёрнутый в генератор - дело десятое.
Во-первых, "код элемента" к запросу не имеет никакого отношения. Так что надо смотреть вкладку Сеть, и актуальное содержимое запроса.
Во-вторых, если woocommerce_checkout_place_order всё-таки в запросе есть, то значит вукоммерс это поле зачем-то удаляет. Хотя я не представляю, зачем это может понадобиться.
Вот, https://habr.com/ru/post/599113/
Хотя эта ссылка по сути и не нужна - Андрей Шестаков в вашем же видео говорит ровно то же самое. Что генераторы не про экономию памяти, а про рациональный код. Посмотрите его уже наконец :)
Вы всё не унимаетесь :)
В интернете действительно много статей, в которых "связаны слова Генератор + память". Но это не значит, что им надо слепо верить.
Эти две статьи написаны как раз инфоцыганами. С первой всё ясно, просто почитайте комментарии.
Во второй на самом деле ещё смешнее. Мало того, что автор - обычный шулер, который выдаёт обычный цикл перебором за какие-то уникальные особенности генератора. Но кроме этого, пытаясь высосать из пальца пример экономии памяти, он пишет код сложностью O(n2). Причём, как голубой воришка, стыдливо замечает, "Немного затратно постоянно перечитывать каждый кусок данных". То есть для него миллион раз прочитать файл в миллион строк - это "немного затратно" :)))
Поймите же уже наконец. В отличие от вас, я эти статьи читал в оригинале, и проорался с них, когда они только появились. А не нагуглил поспешно переводы, даже не заглянув внутрь.
Давайте договоримся, если мы продолжаем разговор, то говорим предметно, а не ссылками.
Впрочем, если вы хотите ссылок, то я сейчас найду специально для вас
Посмотрел видео. Автор говорит правильные вещи.
Таймкод 21:00
Он говорит ровно то, что написано выше у меня: генераторы помогают писать более красивый код.
"Мы хотим отделить выборку из БД от бизнес логики". Именно! Это именно то, для чего используются генераторы.
А про память - "чуть хуже, чем предыдущий метод" без генераторов.
AgentSmith72 не нужно мне тыкать всякими видео. Варианта тут два: либо автор - инфоцыган, который сам не понимает, о чём говорит, либо это вы не поняли, о чём там говорится.
В этой статье описано, как устроен JIT. Который в 99% случаев бесполезен чуть менее, чем полностью.
про то, как устроен РНР, в статье нет почти ничего
а про память, про которую он спрашивал - нет ничего вообще.
JIT работает с кодом, к памяти он вообще никакого отношения не имеет
во-первых, генераторы для экономии памяти совершенно не обязательны.
во-вторых, если выгружать из БД миллион строк, то никакие генераторы не помогут
и в-третьих, самое главное в экономии памяти - это не выгружать из БД сразу миллион строк, а запрашивать ровно столько, сколько нужно.
Смотрите
Во-первых, это снова перевод.
То есть надо чётко разделять - это не команда ВК делится своим практическим опытом, а девочка контент-менеджер, скорее всего студентка инъяза, просто перевела первую попавшуюся в интернете статью. Весь контент которой - это важно понимать - высосан из пальца, и не имеет отношения к реальной разработке.
Я оригинал раньше не видел, но статья построена по известной схеме, которая сводится к "по отдельности забирает объекты из API" - вот буквальная цитата.
То есть буквально весь смысл статьи - это "если надо экономить память, то надо не забирать сразу 200 тыщ миллионов строк из API, а забирать по одному". Прямо вселенская мудрость, без этой статьи никто бы не догадался.
Суть статьи не в том, как экономить память, а в том, как делать конвейеры с помощью генераторов. про функциональное программирование. Когда фактически вся программа - это вложенные вызовы функций.
А задача экономии памяти решается стандартно - выборкой элементов по одному в цикле. А уж явный это цикл - или завёрнутый в генератор - дело десятое.