En términos técnicos, invalida la pantalla, ensuciándola, para que pueda ser renderizada de nuevo.
Déjame explicarte la palabra dirty.
(No, no es lo que estás pensando.)
Tu primera pregunta sería ¿Qué tiene que ver este término 'dirty' con refresh?
Paciencia, joven saltamontes, necesita una introducción a la historia no contada de la interfaz gráfica de usuario.
Hace tiempo, cuando los ordenadores no eran tan rápidos y no había una GPU dedicada (tarjetas gráficas) para hacer la representación (dibujo), había una gran carga en los procesadores. La interfaz gráfica de usuario llegó hace años, pero hacerla funcionar en el hardware heredado era difícil. Hay una teoría (he olvidado el nombre) que dice que el software siempre va por delante del hardware en términos de progreso. Por lo tanto, ya teníamos la GUI, pero no un buen hardware para soportarla.
El principal problema de la GUI es que funciona en Frames. Las librerías de renderizado crean una vista estática de la pantalla, la envían al monitor para que la renderice y luego comienzan a trabajar en otra vista estática. Cada una de estas vistas se llama frame y la tasa de dibujo de los frames se llama Frame Per Second o FPS (Ahora ya lo sabes). Si todavía no lo has entendido, imagina Flipbooks o animaciones 2D dibujadas a mano. Cada vista en la pantalla se dibuja continuamente para darnos la impresión de que las cosas se están moviendo allí.
(Un Flipbook)
Sin embargo conseguirlo no es sencillo. Los hardwares no eran suficientes. Así que los desarrolladores crearon técnicas de optimización. En un escritorio normal hay muchos componentes como iconos, botones, barra de tareas, menú de inicio, fondo de pantalla, etc. Estos componentes se denominan componentes de interfaz de usuario. En un renderizado normal, cada uno de ellos necesita ser renderizado en cada fotograma. Así que en cada fotograma, cada componente UI también necesita ser dibujado.
En cada llamada de renderizado, cada componente que está actualmente presente en la pantalla recibe una llamada. Esto se llama una llamada de dibujo. Si el número de llamadas de dibujo se incrementa, el tiempo para dibujarlas también se incrementa, lo que disminuye la tasa de FPS y la pantalla se ve atascada entre una animación o el movimiento del puntero del ratón.
¿Por qué todo necesita una llamada de dibujo separada para renderizar? Porque las técnicas de renderizado funcionan como un lienzo. En el que un componente renderiza encima de otro componente. Esto significa que el fondo de pantalla se dibuja primero, luego los iconos del escritorio y sus etiquetas, y después es el turno de la barra de tareas y el menú de inicio. La barra de tareas se dibuja encima del fondo de pantalla. Así que funciona como una capa. Sigue funcionando así, por si te lo preguntas. En el renderizado 3D hay pasos extra para obtener una imagen 2D de cada modelo 3D.
Esto es lo normal, si hubiera suficiente hardware. Sin embargo, ya que estábamos limitados en el lado del hardware, hemos creado una optimización. Una de las optimizaciones consiste en renderizar sólo el componente que ha cambiado desde el último frame renderizado. Para lograr esto, cada componente declara si necesita ser redibujado o no. Los componentes que necesitan ser dibujados se llaman objetos sucios. Así, la CPU sólo renderiza los componentes sucios y se ahorra un montón de llamadas de dibujo de esta manera.
Sin embargo, este método tenía errores. Debido a la sobrecarga de la CPU, una llamada a dibujar para un componente sucio podría ser omitida para la siguiente llamada del hilo de dibujo (el hilo se utiliza para la multitarea. Es sólo una cola de tareas). Pero en el siguiente fotograma, el componente ya no está sucio, por lo que no se renderiza de nuevo. Como habrás adivinado, el icono puede no aparecer en el escritorio. Aparte de eso, la llamada para limpiar la pantalla después del último fotograma también podría saltarse, por lo que el componente podría aparecer en su última posición, así como en la nueva posición para dar este tipo de efecto -
Así que la pregunta es ¿qué hace el botón de actualización?
Sólo borra todo en el escritorio o en la ventana actual y marca todo como sucio, para hacer que se redibujen de nuevo. Todavía hace lo mismo, sin embargo, desde que el software, así como el hardware se han mejorado ahora, el salto de la llamada de dibujo rara vez sucede. Pero la posibilidad siempre está ahí, por lo que la opción sigue aquí.
Refrescar no aumenta el rendimiento, aumenta ligeramente la sobrecarga para ralentizar su sistema, sin embargo es insignificante ahora. Siéntete libre de darle a refrescar todo lo que quieras, no hará nada útil, pero te sentirás bien que es lo que importa.
PS: He copiado descaradamente una frase de Thaddeus Howze's answer Marvel Comics: ¿Es Bruce Banner un mutante o un mutado? Que Hulk se apiade de mí.