ademilter / vakitler

Namaz Vakitleri
https://vakitler.app
Apache License 2.0
347 stars 43 forks source link

uygulama performansı #56

Open ademilter opened 1 year ago

ademilter commented 1 year ago

store/common.tsx içinde interval komutu var ve her saniye timer güncelleniyor. haliyle rerender olayı var sanırım. bunu yapmak sistemi yoran bi şey mi, client tarafına bir sorun oluşturur mu (fazla şarj yemesi vs) bakmak lazım. fikri olan paylaşırsa sevinirim.

ademilter commented 1 year ago

sekme aktif değil ise interval durabilir. bu sanırım arka plana atılmış pwa'da da duracaktır (sesli düşündüm)

abdullahceylan commented 1 year ago

PWA'larin genel problemi, batarya kullaniminin yuksek olmasi. Vakitler uygulamasi cok complex bir uygulama olmadigi icin kendini hissettirecek kadar etkisi olmadigi dusunulebilir ancak interval konusu ister istemez etkileyecektir. Ancak buna ragmen damlaya damlaya gol olur mantigiyla mumkun olan yerlerde memo/useMemo kullanmanin faydasi olabilir.

oncesi sonrasi
Screenshot 2023-03-25 at 17 30 29 Screenshot 2023-03-25 at 17 34 39

Gorundugu gibi, componentlerin render edilme suresinde gozle gorulur bir degisiklik oldu. Ama yeterli degil tabii.

Page Visibility API kullanilarak, arkaplandayken interval'in durdurulmasi gibi bir gelistirme de dedigin gibi faydali olabilir.

Ek olarak; zustand gibi hook-driven bir store kullanmak da faydali olabilir. Boylece uygulamayi bir Provider ile wrap etmeye gerek kalmadan ve transiently subscription sayesinde de component'lerde re-render'e neden olmadan islemler gerceklestirilebilir. Ama kesin cozum diyemem. Denemek gerek.

ademilter commented 1 year ago

ilgilendiğin için teşekkür ederim @abdullahceylan, zustand kullanmayı deneyeceğim ve performansına bakacağım, duruma göre ilerleriz.

her halükarda arka planda çalışmayı durdurmasını sağlayacağım

abdullahceylan commented 1 year ago

Rica ederim @ademilter Haftasonu biraz zamanim vardi, zustand'i implement ettim. Ekstra birkac improvement daha yaptim.

Soyle bir sonuc cikti:

oncesi sonrasi
Screenshot 2023-04-03 at 01 28 28 Screenshot 2023-04-03 at 00 22 00
Screenshot 2023-04-03 at 01 28 43 Screenshot 2023-04-03 at 01 22 21

Repo: https://github.com/abdullahceylan/vakitler/tree/feature/performance Commit: https://github.com/abdullahceylan/vakitler/compare/ademilter:vakitler:main...feature/performance

ademilter commented 1 year ago

@abdullahceylan süpersin, yeni değerler harika görünüyor. en kısa sürede test edeceğim inş

edit: yaptıklarına baktım da, ciddi büyük değişiklik. çok ciddi emek vermişsin, çok sağol. bunu review edelim sonra sıkı bir test sonra birleştirelim 👍

abdullahceylan commented 1 year ago

Kesinlikle detaylica test edilmesi gerekiyor zira ben test icin cok genis bir zaman ayirmadim. Genel olarak fonksiyonelligin calistigindan emin olup gonderdim.

Daha kolay review icin PR olusturdum: https://github.com/ademilter/vakitler/pull/88

Kolay gelsin.