Тёмный

Генераторы (generators) в PHP | Глазами фрилансера 

through the Eyes of a freelancer
Подписаться 2,7 тыс.
Просмотров 19 тыс.
50% 1

Опубликовано:

 

5 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 38   
@stanislaukaraliou4679
@stanislaukaraliou4679 Год назад
Если файл будет к примеру 1ГБ, не будет ли каждая итерация генератора обращаться к диску, тем замедляя работу?
@freelancer_eyes
@freelancer_eyes Год назад
Давайте сделаем так. Я постараюсь на днях (или раньше) снять ролик с парсингом большого файла. И заодно последим за производительностью внимательнее, включая диск.
@stanislaukaraliou4679
@stanislaukaraliou4679 Год назад
@@freelancer_eyes Звучит потрясающе 👍
@dmitryalinsky5911
@dmitryalinsky5911 Год назад
Можно попробовать брать инфу отрезками. К примеру, можно создать очередь и брать по 1000 (просто число к примеру) элементов. Оптимальное количество можно узнать, хотя бы, простым подбором. Тогда будет баланс. Практический пример, не связанный с генераторами, но с похожим смыслом. Недавно я делал отправку уведомлений всем пользователям в БД. Ни единым запросом проводить INSERT не вариант (съест много оперативки), ни вставкой очереди по одному (будет много запросов). В итоге пришёл к тому, что по 1000 на одну операцию - это оптимальное количество.
@stanislaukaraliou4679
@stanislaukaraliou4679 Год назад
@@dmitryalinsky5911 я не вижу чем тут отличается 1000 и 100000 и 10, т.к. судя по объяснению генератор хранит в памяти грубо говоря 1 запись и что бы прочитать другую запись её надо взять откуда-то, в данном случае из файла (диска)
@dmitryalinsky5911
@dmitryalinsky5911 Год назад
@@stanislaukaraliou4679 Не обязательно одну. Можно с тем же успехом использовать $i += 1000 и yield range($i, $i + 999).
@eugenelviv7490
@eugenelviv7490 Год назад
Супер. Спасибо. Вывод: Генератор - это итератор, который позволяет проходить коллекцию не держа ее в памяти. Можно использовать для парсинга больших файлов, Http запросов, и других трудоемких операций, где нужно засунуть огромный объект в оперативку и затем пройтись по нему.
@freelancer_eyes
@freelancer_eyes Год назад
В том-то и дело, что засовывать в оперативку не обязательно. Если работа с файлом (или чем угодно поточным) - читаем его в потоке и обрабатываем построчно. Понимая, что однажды пройдя итерацию, обратно уже не вернёмся. Рад быть полезным! Удачи вам в применении на практике.
@АнтонСурыгин-ф9ж
@АнтонСурыгин-ф9ж 4 месяца назад
Спасибо! Все понятно и доступно!
@Thepaksik
@Thepaksik Год назад
Спасибо, очень доходчиво и без лишней воды
@freelancer_eyes
@freelancer_eyes Год назад
Спасибо на добром слове! Рад, если помог разобраться в вопросе.
@user_noname_78dgdh
@user_noname_78dgdh 7 месяцев назад
Спасибо за доступное объяснение.
@dmitryalinsky5911
@dmitryalinsky5911 Год назад
Последний пример я всегда решал через очереди. Ну теперь ещё один инструмент добавился. Спасибо за такое доходчивое разъяснение!
@freelancer_eyes
@freelancer_eyes Год назад
Вам спасибо за поддержку! Рад быть полезным.
@ДмитрийПавлович-о8н
Огромное спасибо за ваш труд! Стало понятнее по работу генератора) Пожалуйста продолжайте делать такие видео)
@freelancer_eyes
@freelancer_eyes Год назад
Вам огромное спасибо за поддержку! От таких комментариев мотивация делать видео растёт как на дрожжах. :)
@krokhs
@krokhs Год назад
Большое спасибо что прислушались и раскрыли тему ! Все четко с толком и расстановкой. В коментах просят про реальный пример с бигдата, согласен это раскроет тему полностью. Будем ждать продолжение :)
@freelancer_eyes
@freelancer_eyes Год назад
Рад, что видео понравилось! Продолжение/дополнение обязательно сделаю. Сочиняю пример поинтереснее
@ihorrud5088
@ihorrud5088 Год назад
Супер-видео,много чего полезного для себя извлек!Спасибо
@freelancer_eyes
@freelancer_eyes Год назад
Спасибо за поддержку! Рад быть полезным.
@kind1y
@kind1y 8 месяцев назад
Эх, если бы я 10 лет назад начал бы учиться по вашим видео, был бы уже миллионером))
@КокоревГлеб
@КокоревГлеб Год назад
Спасибо огромное, я понял генераторы! Очень не хватает иногда информации, которая объясняет суть вещей. Огромный респект за такую вдумчивую подачу знания
@freelancer_eyes
@freelancer_eyes Год назад
Ура! Отлично! Я очень рад, что видео оказалось полезным.
@saharaprotocol
@saharaprotocol 2 месяца назад
6ляяя, мужик спасибо. Я задолбался искать, нахрена нужны эти генераторы, когда я тоже самое могу с массивом сделать. Спасибо.
@arta4649
@arta4649 Год назад
Спасибо, что разжевали!:) Пойду оптимизировать проекты:))
@freelancer_eyes
@freelancer_eyes Год назад
Так им, проектам, и надо! От всей души желаю удачи. Будут вопросы по конкретике - welcome!
@oleksandr_mykhailov
@oleksandr_mykhailov Год назад
Круто, спасибо за объяснение!
@freelancer_eyes
@freelancer_eyes Год назад
Рад быть полезным!
@topalek
@topalek Год назад
Хорошее видео, спасибо!!! но было бы прям СУПЕР, если был бы пример из жизни: "А сейчас мы с вами напишем небольшой парсер csv/excel файлов с помощью генератора"
@arta4649
@arta4649 Год назад
Поддерживаю!:)
@freelancer_eyes
@freelancer_eyes Год назад
Ну, что ж теперь делать. Будем записывать, значит :) Генераторы, часть 2, практическая. Коротенько только, чтобы самую суть.
@TheDinamitt
@TheDinamitt Год назад
Как жаль, что не знал о генераторах пару дней назад) Делал тестовое задание, где нужно было сделать отчет о нагрузке посекундно в течение суток. Решение с циклами работает, но занимает много памяти. А если понадобится сделать отчет за несколько дней, памяти не хватит.
@freelancer_eyes
@freelancer_eyes Год назад
Эх, какая досада. Кабы раньше знать. Ну, не последнее ведь тестовое задание! В следующий раз будем оперативнее! :)
@Laudanum1ful
@Laudanum1ful 11 месяцев назад
🔥🔥🔥🔥
@Фанат-щ9ь
@Фанат-щ9ь Год назад
Было познавательно и полезно Мне понравился пример на guzzle, вот только было не ясно зачем отправлять 100 одинаковых запросов без изменения отправляемых параметров, возможно я чего то не понимаю.
@freelancer_eyes
@freelancer_eyes Год назад
100 одинаковых конечно же не нужно. Но ведь никто не мешает в генератор передать нужный контекст или параметр, чтобы он yield то, что требуется
Далее
PHP: Неправильный путь
1:37:28
Просмотров 9 тыс.
НЮША УСПОКОИЛА КОТЯТ#cat
00:43
Просмотров 671 тыс.
Есть ли массивы в PHP?
37:41
Просмотров 4,7 тыс.