- Mastering High Performance with Kotlin
- Igor Kucherenko
- 358字
- 2021-06-25 20:55:23
Frame rate
The human brain receives and processes visual information continuously. This can be used to create the illusion of motion when images follow each other fast enough. When an animation or transition runs or the user scrolls the page, the application needs to put up a new picture for each screen refresh. How many images software shows per second is the frame rate, and it's measured in frames per second (FPS):
- A rate of 10 to 12 frames per second is referred to as clearly motion, and, in this case, a user retains awareness of inpidual pages.
- A 24 frames per second rate with motion-blurring technology is enough to see fluid movement and is enough for the film industry.
- A 30 frame per second rate is sufficient for movies, but without special effects.
- 60 or more frames per second is what most people see as high-quality, smooth motion:

The act of generating a frame from an application and displaying it is referred to as user interface rendering. According to the table with recommended frame rates for popular devices, to be sure that a user interacts with an application smoothly, the application should render one frame each 16.6 ms to display 60 frames per second. The developer has to take into account that the system also requires some time to draw a frame, so it's not a good idea to plan to own all of that 16 ms, and it would be better to count on 10 ms. When an application fails to meet this budget, the frame rate drops and the content stutters on the screen.
It's essential to understand how to get smooth motion with a high frame rate. The human eye is extremely sensitive to motion inconsistencies. An application can display on average 60 frames per second, but it's enough to have only one frame that takes more than 16 ms to render, for the user to see something that we call hitching, lag, or jank. If the device's refresh rate is higher than the frame rate, the monitor displays repeated renderings of identical frames. This diagram illustrates a simplified view of jank:

- LabVIEW Graphical Programming Cookbook
- Python自然語言處理實戰:核心技術與算法
- Scala Design Patterns
- 編寫整潔的Python代碼(第2版)
- SSM輕量級框架應用實戰
- Service Mesh實戰:基于Linkerd和Kubernetes的微服務實踐
- Python語言實用教程
- 輕松上手2D游戲開發:Unity入門
- Python程序設計與算法基礎教程(第2版)(微課版)
- 深入理解BootLoader
- 征服C指針(第2版)
- Flutter之旅
- Spring Boot學習指南:構建云原生Java和Kotlin應用程序
- Python深度學習與項目實戰
- HTML5 and CSS3:Building Responsive Websites