Geliştiricilerden
İstemci Temizliği: İlerleme, Aksaklıklar, Keşifler

İstemci Temizleme Çalışmaları'nın son güncellemesinde ilerleyiş ve bazı aksaklıklardan bahsediyoruz.

GeliştiricilerdenYAZARLARRiot Cactopus, Riot A Huevo, Riot Sparango, Riot Id
  • Seçim panoya kopyalandı

Birkaç ay önce "İstemci Temizleme Çalışmaları" olarak adlandırdığımız, League of Legends İstemcisi'ni düzeltme planlarımızı duyurmuştuk.

Bu zor zamanlarda bile Riot'taki ekip, sizi ilerlememiz hakkında bilgilendirmekte kararlı. Özetlememiz gerekirse, istemcinin performansından memnun olabilmemiz için daha çok yol kat etmemiz lazım.

Bugünkü yazımızdaysa kaydettiğimiz bazı olumlu ilerlemelerden bahsedeceğiz. Ayrıca
karşılaştığımız bazı aksaklıklarla
ilgili ayrıntıları ve atacağımız sonraki adımlarda bunların üstesinden nasıl gelmeyi planladığımızı da paylaşacağız.

İLERLEMEMİZ

İstemci hakkındaki ilk yazımızda da söylediğimiz gibi, önyükleme süresini %90'lık bölümdeki oyuncular için bile 15 saniye civarına çekmek istiyoruz. Önyükleme süresinin, istemcinin başlatılmasının ne kadar sürdüğünü hesaplayan bir ölçüt olduğunu bir kez daha hatırlatalım.

Hedefimize ulaşmak için, eklentilerin ve ember uygulamalarının sayısını azaltıp bunları güçlendireceğimizi söylemiştik. Eğer bunlar hakkında bilgi sahibi değilseniz, eklentilerin istemcinin kodunu faydalı parçalara ayırmakta kullandığımız araçlar olduğunu hatırlamanız yeterli. Ember uygulamalarıysa kullanıcı arayüzümüzü çalıştırmakta kullanılan araçlar.

Şimdilik bu alandaki çalışmalarımız epey iyi ilerliyor. Aşağıdaki grafikte istemcideki eklenti ve ember uygulamalarının sayısının zamanla azaldığını görebilirsiniz. Her yamada sayılarını biraz daha düşürmeyi başardık. Sürecin başlangıcıyla kıyasladığımızda artık istemcinin önyükleme sırasında yüklemesi gereken ember uygulamalarının sayısı aşağı yukarı %10, eklentilerin sayısıysa %20 daha az.

ClientCleanup_Charts_1_TR.jpg

Bunlar iyi haberler! Ancak sizinle paylaşmak istediğimiz bazı aksaklıklarla karşılaştığımız da oldu.

AKSAKLIKLAR

Yılın ilk birkaç yamasında, eklenti çalışmalarımız sonucunda önyükleme süresinin önemli ölçüde azaldığını görmüştük.

Fakat 10.3 Yaması'yla birlikte önyükleme sürelerinin yavaşça arttığını ve 10.7 Yaması'nda önyükleme sürelerinin en yüksek noktaya ulaştığını gözlemledik.

Bunları aşağıdaki grafiklerde görebilirsiniz. Eğrilerin sol tarafa yaklaşması, önyükleme sürelerinin azalmasını temsil ediyor.

ClientCleanup_Charts_2_TR.jpg

Bunun sebeplerinden biri de son haftalarda LoL sunucularına daha fazla yük binmesi olabilir. Sizin de bildiğiniz sebeplerden ötürü pek çoğunuz şu anda evde daha fazla zaman geçiriyorsunuz. Dolayısıyla çok daha fazla LoL oynuyorsunuz ve bu, sunucu altyapımızı zorlayarak tutarsız tepki sürelerine ve istemcinin önyükleme sürelerinin artmasına yol açıyor.

Bu dönemde LoL'e duyulan ilgiyi karşılayabilmek için sunucu kapasitesini arttırıyoruz. Böylece istemci performansında tekrar olumlu bir artış görmeye başlayabiliriz. Ayrıca önyükleme sırasında yüklenen Javascript kodunun miktarını azaltmak gibi, diğer muhtemel çözümleri de araştıracağız.

Yaşanan aksaklıkların sebebi ne olursa olsun gelecekten umutluyuz. İlk geliştirici yazımızda da bahsettiğimiz üzere, önyükleme ve şampiyon seçimi kesinleştirme sürelerine (sıradaki çalışmamız bu olacak) müdahale ettiğimiz esnada, istemcinin temelini oluşturan bazı kısımlarını da temizleyip yeniden şekillendiriyoruz.

Yani hataları gidermeye ve istemcinin temelinde yatan ve başınızı ağrıtan sorunları çözmeye devam ediyoruz.

Keşfettiğimiz bir temel sorun da Affinity adını verdiğimiz istemci özelliğiydi.

AFFINITY SORUNLARI

Affinity yıllar önce istemciyi güncellediğimizde getirdiğimiz bir özellikti. Basitçe, önyükleme tamamlanmadan önce yüklenmesi gereken eklentileri seçmemizi sağlayan bir araçtı.

Affinity'yle ilgili iki sorun keşfettik:

  1. Affinity bozuktu. 2018'de Affinity biz farkında olmadan bozuldu. Doğru çalışmadığı için de istemci, önyükleme ve oyun sonrası yüklemeler sırasında kendiliğinden tüm eklentileri yüklüyordu.

  2. Düzelttiğimizde bile Affinity sorunlarımızı çözmedi. Affinity olması gerektiği şekilde çalışırken bile eklentilerin yüklenme önceliğini verimli bir şekilde belirleyemiyordu. Yani istemci önyükleme sırasında her zaman çok fazla eklenti yüklemeye devam ediyordu.

    Özetle, Affinity'yi daha iyi ve verimli bir çözümle değiştirmemiz gerekiyor.

    Bu keşifler bizi şaşırttı ama aynı zamanda istemci üstünde çalışmaya başladığımızda kurduğumuz temel teorilerimizden birini de doğruladı: İstemciyi yakından inceleyerek, yaşanan sorunların ana sebeplerinden bazılarını saptamayı başardık.

    SIRADAKİ ADIMLAR

    Affinity'nin gerektiği gibi çalışmadığını bildiğimize göre, eklentiler, doğru bir şekilde öncelik sırasına dizen bir çözüm üstünde çalışabiliriz. Bunu yaparak oyuncuların önyükleme sürelerini kısaltacak ve diğer etkili istemci çalışmalarımıza odaklanabileceğiz.

    Bunlardan hiçbiri istemciyi düzeltme planlarımızı önemli ölçüde değiştirmeyecek ama yine de çalışmalarımızı biraz da olsa yavaşlatabilir. Buna rağmen öğrendiklerimizi olumlu bir gelişme olarak görüyoruz, çünkü planlarımızı netleştirmemizi sağlıyor. Eğer size daha az hatalı ve güvenilir bir istemci sunabilirsek çabalarımız boşa gitmeyecek.

    Önyükleme sürelerini istediğimiz seviyeye getirdiğimizde İstemci Temizleme Çalışmaları'nın ikinci evresine geçeceğiz: istemcinin şampiyon seçimi ekranındaki tepki sürelerini kısaltmak. Şampiyon seçimi, pek çoğunuz için çalışmalarımızın en önemli kısmı ve biz de işe koyulmayı dört gözle bekliyoruz.

    Kaydettiğimiz ilerlemeleri sizinle paylaşmaya devam edeceğiz. Önümüzdeki birkaç ay içinde buna benzer bir makale daha yayınlamayı planlıyoruz. Her zamanki gibi, oynadığınız için teşekkürler.



    • Seçim panoya kopyalandı