Playwright Bilet/Randevu Botu Optimizasyonu: Otomatik Giriş Sırasında Memory Leak Çözümü

0 Yanıtlar 0 Görüntülenme
·
Katılımcılar
Konuyu Açan #0
Günümüzde bilet veya randevu alma otomasyonları, yüksek hız ve güvenilirlik gerektirdiği için Playwright gibi modern araçlar sıkça tercih ediliyor. Ancak, otomasyon süreçlerinde karşılaşılan en yaygın sorunlardan biri bellek sızıntısı (memory leak). Bu durum, özellikle otomatik giriş (auto login) aşamasında, uzun süreli çalışmalarda önemli performans kayıplarına neden olabilir. Bu makalede, Playwright kullanırken otomatik giriş sırasında ortaya çıkan bellek sızıntısının nedenlerini ve çözüm yollarını detaylandırıyoruz.

Memory Leak Nedenleri ve Belirtileri

Playwright ile otomasyon yaparken, özellikle sayfa veya tarayıcı nesnelerinin uygun şekilde temizlenmemesi, bellek sızıntısını tetikler. Otomatik giriş sırasında, genellikle şu adımlar kullanılır: oturum çerezleri, localStorage veya oturum verileri yüklenir ve sayfa açık kalır. Eğer bu nesneler veya sayfa nesnesi (page object) uygun şekilde kapatılmazsa, zaman içinde RAM kullanımı artar. Bu da performans düşüşüne ve zamanla uygulamanın çökmesine neden olur. Belirti olarak, performans düşüşü, işlem süresinde uzama ve bellek kullanımı artışı görülür.

Çözüm Yöntemleri

  • Sayfa ve Tarayıcı Nesnelerini Temizle: Otomasyon sonunda veya yeni giriş öncesinde,
    CODE
    1page.close()
    veya
    CODE
    1browserContext.close()
    komutlarıyla ilgili nesneyi serbest bırakmak kritik. Bu, kullanılmayan nesnelerin RAM'de kalmasını engeller.


  • Oturum Verilerini Yönet: Çerezler veya localStorage gibi verileri, kullanımı bittikten sonra temizlemek veya yeniden yüklemek, bellekte gereksiz yükü azaltır. Bu, özellikle farklı hesaplar veya oturumlar arasında geçiş yaparken faydalıdır.


  • Tarayıcı ve Context Oluşumunu Optimize Et: Birden fazla sayfa veya context açıp kapamak yerine, mümkünse aynı context içinde oturumları yönetmek, bellek kullanımını azaltır. Ayrıca,
    CODE
    1browser.close()
    çağrısı ile tarayıcıyı düzgün şekilde kapatmak gerek.


  • Garbage Collection ve Performans İzleme: Node.js ortamında,
    CODE
    1global.gc()
    çağrısı ile manuel garbage collection yapabilir veya performans izleme araçlarıyla bellek kullanımını düzenli takip edebilirsiniz. Bu, sızıntının nereden kaynaklandığını tespit etmede yardımcı olur.


Sonuç ve Uygulama İpuçları

Otomasyon süreçlerinde bellek sızıntısını engellemek için, nesne ve kaynak yönetimine özen göstermek şarttır. Otomatik giriş işlemlerinde, her giriş sonrası veya belirli aralıklarla sayfa ve tarayıcı nesnelerini temizlemek, bellek kullanımını optimize eder. Ayrıca, Playwright’in kendi API’leri dışında, Node.js’in performans ve bellek araçlarını kullanmak, olası sızıntı kaynaklarını tespit etmede faydalı olur. Bu nedenle, kodunuzu düzenli olarak profil etmek ve kaynak temizliğine dikkat etmek, uzun vadeli stabilite sağlar.

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi