read().splitlines() یکباره در مموری لود شده است. این کار هم ریسک Memory Error را بالا میبرد و هم برای فایلهای خیلی بزرگ باعث افت شدید کارایی میشود. در کد دوم با استفاده از یک generator و iteration تنبل (lazy) هر خط بهصورت stream خوانده میشود و فقط همان لحظه در مموری قرار میگیرد.در مثال بالا به جای بارگذاری یکجای کل فایل، میتوانید با الگوی generator و حلقه روی file object، مصرف مموری را بهصورت چشمگیر کاهش دهید و در سناریوهای پردازش فایلهای چندصد مگابایتی یا لاگفایلهای بسیار بزرگ، هم مقیاسپذیری برنامه را بهتر کنید و هم سرعت شروع پردازش را افزایش دهید.
اگر در پروژههای Python با دادههای حجیم (مثلاً log processing، ETL ساده یا پردازش دیتاهای متنی) سروکار دارید، استفاده از این الگو بهجای روش eager loading میتواند تفاوت جدی در performance و پایداری برنامهتان ایجاد کند.
🔖 #Python #پایتون
👤 Developix
💎 Channel: @DevelopixPython




