Čemu služi „Refresh“ opcija kod Windows-a?

„Desni klik > Refresh“ je poznata akcija u Windows sistemu koju korisnici često praktikuju. Ali, čemu služi? Šta se desi kada kliknemo to?

Ukratko:

Refresh opcija deklariše sve komponente na ekranu kao „Dirty“ i time forsira operativni sistem da ih renderuje ponovo.

Opširnije:

Nekada davno računari nisu bili toliko brzi kao danas i nisu imali grafički procesor (GPU) koji će renderovati grafiku na ekranu. Zbog toga je sav posao radio centralni procesor (CPU). Kada su se pojavila grafička okruženja (GUI) bilo je potrebno prilagoditi ih i starijem hardveru. U svetu računara softver je uvek brže napredovao od hardvera, pa tako i tadašnji hardver nije mogao da se nosi sa novim GUI.

Glavna mana GUI-a je što rade na principu okvira (Frames). Biblioteke zadužene za renderovanje kreiraju statične slike trenutnog ekrana, šalju ih monitoru, i počinju da rade na sledećem frejmu. Broj prikaza tih frejmova u nekom određenom vremenskom intervalu se naziva FPS (Frames Per Second).

Međutim, sa hardverske strane nije baš lako to postići, pa su developeri morali da optimizuju čitav proces. Na klasičnom desktopu postoji dosta komponenti, kao što su ikonice, Start, pozadina, tasteri… i tako dalje, i svaka ta komponenta se naziva „UI komponenta„. Kod klasičnog renderovanja svaka ta komponenta mora da se renderuje iznova i iznova sa svakim frejmom.

U svakom tom renderu svaka UI komponenta prima „poziv“ za render, tzv. „Draw Call„. Ukoliko ima previše UI komponenti na ekranu, potrebno je mnogo vremena da se one renderuju, a samim tim se smanjuje i FPS.

E sad, zašto je potrebno odvojeno pozivati svaku komponentu na render? Jer tehnika renderovanja radi kao platno (tzv. „Canvas„) na kojem se nalaze te komponente. To znači da se pozadina renderuje prva, pa onda ikonice preko nje, zatim Start traka, itd. i to sve radi na principu slojeva (Layers). Taj metod radi lepo ukoliko je hardver dovoljno snažan za sve to, a pošto u tadašnje vreme nije bio, moralo se poraditi na optimizaciji procesa.

windows slojevi render

Optimizacija za koju su se odlučili developeri je jednostavna: renderuj samo komponente koje su se promenile od poslednjeg rendera (recimo ikonica se pomerila na drugu poziciji). Da bi postigli to, svaka komponenta je morala da sadrži informaciju o tome da li je potrebno ponovo renderovati je, ili ne. UI komponente koje je bilo potrebno ponovo renderovati su se nazivale „Dirty object„. Tako da na kraju CPU mora da renderuje samo „Dirty“ komponente i time je efikasnost znatno povećana.

Ali, ovaj metod je bio bagovit. Zbog povećeg opterećenja procesora, poziv na render UI komponenti može da bude prebačen u naredni poziv. I tako u narednom frejmu određena komponenta više nije „Dirty“ što znači da ne mora da se ponovo renderuje (a ustvari je morala). Za rezultat se dešava da se neke ikonice ne pojavljuju na ekranu, ili su i dalje prisutne nakon brisanja/premeštanja. Isto tako, poziv za „čišćenje“ (Refresh) ekrana može biti preskočen i onda se na ekranu neka komponenta može pojaviti više puta – dobro poznat prizor kod Windows XP-a i starijih sistema:

windows render bug
Slika: Super User

I na kraju, šta „Refresh“ opcija zapravo radi?

Kao što sam napisao na početku članka, kada kliknete „Refresh“ ta opcija očisti ceo ekran (ili trenutni prozor) i označi sve UI komponente kao „Dirty“ kako bi se „na silu“ renderovale ponovo. Danas je retkost da hardver ne uspe da završi sav posao koji mu je dodeljen pa se ni ne dešavaju gore navedeni problemi. Ipak, ta mogućnost svakako i dalje postoji zbog načina na koji sve to funkcioniše, pa je opcija „Refresh“ ostala i dan danas.

Međutim, Windows sada ima dodatne metode za keširanje komponenti na ekranu. Tako da ako vam se desi u Windows 10 da neka ikonica ostane na ekranu i nakon brisanja, verovatno nije problem do nemogućnosti hardvera da osveži ekran već se keš iz foldera zadržao. Tako da samo kliknite „Refresh“ i primoraćete Windows da obriše keš iz foldera i sve bi trebalo da bude u redu.

Stefan Marjanov
Stefan Marjanov

Diplomirani inženjer informatike. Aktivno se bavim informacionim tehnologijama oko 13 godina, a nešto kraće i veb dizajnom. Takođe, osnivač sam ovog bloga na kome radim i pišem više od 10 godina. Ako želite da podržite moj rad kliknite ovde.

Budi u toku

Mrzi te da redovno posećuješ blog kako bi bio/la u toku sa objavama? Unesi svoj email i blog će ti jednom mesečno slati nove objave. Bez spama, odjavi se bilo kada.

Ostavi komentar

Vaša adresa e-pošte neće biti objavljena. Neophodna polja su označena *