Bakit Nagpapabagal ang Mga Mensaheng Puno ng Emoji sa Iyong Karanasan sa App sa Telepono
Ang mga chat na puno ng emoji ay maaaring tahimik na magpabagal sa bilis ng iyong app. Narito ang teknikal na dahilan kung bakit at kung paano suriin kung ang iyong koneksyon ang tunay na salarin.
Nagpadala ka ng mensahe sa isang group chat. Sa loob ng ilang segundo, sumabog ang thread sa mga reaksyon, sticker, at pader ng emoji. Pagkatapos ay nag-freeze, nauutal, o tumatagal nang matagal ang iyong app para i-load ang natitirang usapan. Mag-restart ka, iisipin na ito ay isang bug, at magpapatuloy. Ngunit ang tunay na paliwanag ay mas kawili-wili kaysa sa isang software glitch, at ito ay may kinalaman sa kung paano talaga gumagana ang emoji sa ilalim ng hood.
Mga Pangunahing Natutunan:
- Ang bawat emoji na hindi naka-imbak sa iyong device ay dapat kunin mula sa isang malayuang server, na nagdaragdag ng latency sa bawat pag-load ng mensahe.
- Ang isang modernong emoji ay maaaring suportahan ng maraming image asset sa iba't ibang platform at laki ng display.
- Kapag dose-dosenang hindi pamilyar na emoji ang nag-ipon sa isang thread, ang mga pinagsama-samang round-trip na request ay mabilis na nadadagdagan.
- Ang mahina o hindi pare-parehong mobile connection ay lubhang nagpapalala sa problema.
- Ang pagpapatakbo ng mobile speed test ay makakatulong sa iyong matukoy kung ang iyong koneksyon, hindi ang app, ang sanhi ng pagbagal.
Ang Emoji ay Hindi Lamang Mga Text Character
Karamihan sa mga tao ay tinatrato ang emoji bilang simpleng text. Nagta-type ka ng shortcut, lilitaw ang isang dilaw na smiley face. Tapos na ang trabaho. Ngunit sa likod ng maliit na graphic na iyon, marami pang nangyayari kaysa sa iyong inaasahan.
Ang emoji ay umiiral sa intersection ng dalawang mundo. Ang una ay ang Unicode standard, na nagtatalaga sa bawat emoji ng isang partikular na code point, mahalagang isang natatanging ID number. Ang pangalawa ay ang visual rendering layer, at doon nagiging kumplikado ang mga bagay. Ayon sa Unicode character standard, ang Unicode specification ay sumasaklaw na ngayon sa mahigit 3,600 emoji code points, at marami sa mga iyon ay may maraming visual variation.
Ang WhatsApp ay gumagamit ng sarili nitong emoji graphics. Ang Slack ay gumagamit ng ibang set. Ang Apple, Google, at Microsoft ay bawat isa ay nagpapanatili ng natatanging image library. Kaya kapag nakatanggap ka ng mensaheng puno ng emoji mula sa isang contact sa ibang device o ibang bersyon ng app, maaaring walang lokal na kopya ang iyong telepono ng mga eksaktong larawang iyon. Kailangan nitong kunin ang mga ito mula sa isang content delivery server. Ang pagkuha na iyon ay tumatagal ng oras. Sa isang mabilis na koneksyon, ito ay hindi mahahalata. Sa isang mabagal o masikip na koneksyon, ito ay nag-iipon.
Ang Problema sa Pagkuha ng Asset, Ipinaliwanag
Isipin ang iyong messaging app na parang isang browser. Sa bawat oras na mag-load ka ng webpage, dina-download ng iyong browser ang mga imahe, font, at script. Ang caching ay nangangahulugan na pagkatapos ng unang pagbisita, marami sa mga file na iyon ay naka-imbak nang lokal upang hindi mo na kailangang i-download muli ang mga ito. Ganito rin gumagana ang mga messaging app.
Sa unang pagkakataong makatagpo ka ng isang partikular na emoji sa isang partikular na format, maaaring kailanganin ng iyong app na kunin ang asset na iyon mula sa isang server. Kasama sa mga modernong emoji set ang mga high-resolution na variant, iba't ibang laki para sa thumbnail kumpara sa full-size na display, skin tone modifier, at combination sequence. Ang family emoji, halimbawa, ay pinagsasama-sama ang maraming character sa isang composite image.
Ang Emojiguide.com ay sumusubaybay sa isang malawak na katalogo ng mga asset na ito, at ang dami ng natatanging image file na sumusuporta sa isang emoji sa iba't ibang platform ay kapansin-pansin. Ang isang simpleng thumbs-up ay hindi isang imahe. Ito ay potensyal na dose-dosenang, na nakakalat sa iba't ibang skin tone, bersyon ng platform, at laki ng display. Kapag ang isang thread ay naglalaman ng 40 o 50 iba't ibang emoji mula sa ilang nagpadala, maaari kang mag-trigger ng 40 o 50 hiwalay na asset request sa mabilis na pagkakasunod-sunod.
Bakit Pinapalala Ito ng Mga Mobile Connection
Ang isang wired broadband connection ay humahawak ng dose-dosenang maliliit na sabay-sabay na request nang walang kahirap-hirap. Ang mga mobile connection ay ibang kuwento. Ang lakas ng cell signal ay nagbabago depende sa iyong lokasyon, sa bilang ng mga kalapit na user na nagbabahagi ng parehong tower, sa mga materyales ng gusali na humaharang sa signal, at sa network congestion sa mga peak hours.
Ang bawat pagkuha ng asset ay may kasamang round-trip. Ang iyong telepono ay nagpapadala ng request sa isang server, pinoproseso ito ng server, at ang tugon ay naglalakbay pabalik. Sa isang solidong LTE o 5G na koneksyon, ang isang round-trip ay maaaring tumagal ng 20 hanggang 50 millisecond. Sa isang mahinang 3G na koneksyon, o sa isang mataong stadium, maaari itong umabot ng 300, 500, o kahit 1,000 millisecond bawat request.
I-multiply iyon sa 40 emoji sa isang thread. Kahit na ang bawat request ay nagkakahalaga lamang ng dagdag na 100 millisecond, tumitingin ka sa apat na buong segundo ng idinagdag na latency bago ganap na ma-render ang thread. Iyon ang pag-uutal at pag-freeze na sinisisi mo sa app.
Paano Nakakatulong ang Caching at Kung Saan Ito Nagkukulang
Ang caching ay ang built-in na solusyon sa problemang ito. Kapag na-download na ng iyong app ang isang emoji asset, iniimbak ito nang lokal at ginagamit muli sa susunod na paglitaw ng emoji na iyon. Kung regular kang nakikipag-chat sa parehong mga tao gamit ang parehong emoji, nabubuo ang iyong cache at nawawala ang lag.
Ang mga problema ay lumitaw sa ilang partikular na sitwasyon:
- Sasali ka sa isang bagong group chat na may hindi pamilyar na mga contact na gumagamit ng emoji na hindi mo pa nakatagpo.
- Ang isang update sa app ay nag-clear ng lokal na cache, na pinipilit ang isang sariwang pag-download ng lahat ng asset.
- Magpalit ka ng device o muling i-install ang app, na magsisimula nang buo mula sa simula.
- Ang emoji ay mga kumplikadong sequence o mas bagong mga karagdagan na iba ang paghawak ng iyong kasalukuyang bersyon ng app kumpara sa bersyon ng nagpadala.
Sa alinman sa mga kasong ito, ang iyong telepono ay babalik sa paggawa ng live na server request para sa mga imaheng wala itong naka-imbak nang lokal. Sa isang malakas na koneksyon, halos hindi mo mapapansin. Sa isang nanginginig na koneksyon, mabilis na bumababa ang karanasan.
Pagtukoy sa Tunay na Bottleneck
Dito nagkakamali ang maraming tao. Kapag ang kanilang app ay nag-lag sa panahon ng isang thread na puno ng emoji, sinisisi nila ang app, inaakala na ang server ay down, o nagpapasya na ang kanilang telepono ay masyadong luma. Minsan ang mga paliwanag na iyon ay totoo. Ngunit madalas, ang bottleneck ay simpleng bilis ng koneksyon.
Ang paraan upang malaman ay diretso. Bago mo sisihin ang app, magpatakbo ng mobile speed test upang makita ang iyong aktwal na bilis ng pag-download, bilis ng pag-upload, at ping sa real time. Bigyang-pansin ang pagbabasa ng ping. Sinusukat ng ping ang oras na kinakailangan para sa isang maliit na packet ng data upang maglakbay mula sa iyong telepono patungo sa isang server at pabalik, na ipinahayag sa millisecond. Ang ping na mas mababa sa 50ms ay solid. Higit sa 150ms, magsisimula kang mapansin ang lag sa mga app na maraming asset. Higit sa 300ms, kahit isang katamtamang thread na puno ng emoji ay magiging mabagal.
Kung ang iyong ping ay mataas o ang iyong bilis ng pag-download ay mas mababa kaysa sa ipinangako ng iyong plano, ang koneksyon ang iyong salarin. Lumipat sa isang lugar na may mas mahusay na signal, lumipat mula sa mobile data patungo sa Wi-Fi, o subukan ang usapan sa ibang oras ng araw kapag humina na ang network congestion.
Mga Pagkakaiba ng Platform at Ano ang Kahulugan Nito para sa Iyo
Hindi lahat ng messaging app ay humahawak ng emoji assets sa parehong paraan. Ang ilan ay agresibo tungkol sa prefetching at pag-cache ng mga asset sa background. Ang iba ay naglo-load ng lahat on demand, na nagpapataas ng latency sa mas mabagal na koneksyon ngunit nakakatipid ng mobile data.
Ang WhatsApp ay nag-compress ng media assets nang medyo agresibo upang mapanatili ang paggalaw sa mahihinang koneksyon. Ang Slack, na pangunahing idinisenyo para sa desktop use, ay may posibilidad na unahin ang kalidad ng imahe at naglo-load ng mas maraming asset bawat thread. Ito ay isang dahilan kung bakit ang Slack ay maaaring makaramdam ng kapansin-pansing mas mabigat sa mobile, lalo na sa mga channel kung saan ang mga tao ay nagpo-post ng madalas na emoji reactions sa buong araw.
Ang Telegram ay nasa pagitan, na nag-aalok ng mga configurable na setting ng pag-download ng media na nagpapahintulot sa mga user na magpasya kung magkano ang i-pre-cache. Ang pag-unawa kung aling app ang iyong ginagamit at kung paano ito namamahala ng mga asset ay tumutulong sa iyong magtakda ng tumpak na mga inaasahan, at tinutulungan kang magpasya kung kailan ang isang pagbagal ay nagkakahalaga ng pagsisiyasat.
Network Latency at Paano Ito Nagpapalala
Ang teknikal na konsepto sa puso ng lahat ng ito ay network latency, ang pagkaantala sa pagitan ng pagpapadala ng request at pagdating ng tugon. Ang latency ay lumalala kapag maraming request ang kailangang gawin nang sunud-sunod sa halip na sabay-sabay. Karamihan sa mga modernong app ay nagba-batch ng mga request o gumagamit ng HTTP/2 multiplexing upang mahawakan ang ilan nang sabay-sabay, ngunit may mga limitasyon. Kapag dose-dosenang mga asset ang kailangang i-load nang sabay-sabay, kahit na ang mga multiplexed na koneksyon ay nakakaramdam ng stress sa low-bandwidth o high-latency na mobile link.
Ito ang dahilan kung bakit ang parehong emoji thread na naglo-load nang instant sa bahay sa Wi-Fi ay maaaring makaramdam ng hindi mabata na bagal sa isang tren o sa isang basement. Ang nilalaman ay hindi nagbago. Ang mga asset ay pareho ang laki. Ang tanging variable ay ang kalidad ng koneksyon, at ang nag-iisang variable na iyon ay maaaring mangahulugan ng pagkakaiba sa pagitan ng isang maayos na karanasan at isang naka-freeze na screen.
Ano ang Magagawa Mo Ngayon
Hindi mo kailangang tanggapin ang isang mabagal na karanasan sa app. Ang ilang praktikal na pagsasaayos ay gumagawa ng kapansin-pansing pagkakaiba:
- Lumipat sa Wi-Fi hangga't maaari para sa mga group chat na puno ng emoji, lalo na sa malalaking thread.
- Suriin ang iyong signal bars bago magtapos na sira ang app.
- I-clear ang cache ng iyong app pana-panahon upang alisin ang mga luma o sira na asset, pagkatapos ay hayaan itong muling bumuo sa isang malakas na koneksyon.
- Bawasan ang mga setting ng media auto-download sa mga app tulad ng WhatsApp at Telegram kung madalas kang nasa mga lugar na mahina ang signal.
- I-update ang iyong mga messaging app nang regular, dahil ang mga mas bagong bersyon ay kadalasang may kasamang pinahusay na caching logic at mas mahusay na naka-compress na asset library.
Bakit Nagla-Lag ang Iyong Chat, At Ano ang Susunod na Gagawin
Sa susunod na ang iyong telepono ay ma-stutter habang naglo-load ng isang abalang group thread, malalaman mo nang eksakto kung ano ang nangyayari. Dose-dosenang maliliit na image file ang hinihiling nang paisa-isa, na naglalakbay sa isang koneksyon na maaaring hindi sapat na mabilis o matatag upang mahawakan ang dami. Hindi palaging kasalanan ng app. Ito ay madalas ang agwat sa pagitan ng kung ano ang kayang ibigay ng iyong koneksyon at kung ano ang hinihingi ng thread.
Ang agwat na iyon ay nasusukat. Ang pag-alam kung nasaan ka ay ang unang hakbang, at ito ay tumatagal ng mas mababa sa isang minuto upang malaman. Kapag mayroon ka nang larawang iyon, makakagawa ka ng mas matalinong mga desisyon tungkol sa kung kailan dapat i-troubleshoot ang app at kung kailan dapat maghanap na lang ng mas magandang signal.