# fps

Published articles for fps.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Когда данных от Apple недостаточно: собираем метрики производительности UI

DevFeed: [Когда данных от Apple недостаточно: собираем метрики производительности UI](<https://devfeed.tech/articles/apple-ui-30697.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/hh/articles/988322/>)

Author: hurmavbatone (hh.ru)

Published: 2026-01-26T14:02:45Z

Content type: tutorial

Language: ru

Sources: [HeadHunter RU](<https://devfeed.tech/sources/headhunter-ru.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [SwiftUI](<https://devfeed.tech/topics/swiftui.md>), [ui](<https://devfeed.tech/topics/ui.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [fps](<https://devfeed.tech/tags/fps.md>), [ios](<https://devfeed.tech/tags/ios.md>), [swiftui](<https://devfeed.tech/tags/swiftui.md>), [tag-b92bf5906bbd](<https://devfeed.tech/tags/tag-b92bf5906bbd.md>), [tag-c6d5400b7d88](<https://devfeed.tech/tags/tag-c6d5400b7d88.md>), [tag-cb5ff012b3f0](<https://devfeed.tech/tags/tag-cb5ff012b3f0.md>), [ui](<https://devfeed.tech/tags/ui.md>), [uikit](<https://devfeed.tech/tags/uikit.md>)

### AI overview

An iOS developer from hh.ru describes building custom UI performance metrics collection after Apple's default data proved insufficient for investigating user-reported freezes and slowdowns. The article discusses the company's SwiftUI- and UIKit-based applications and metrics such as Hitch Rate, Hang Rate, and FPS.

### Source excerpt

Привет, Хабр! Меня зовут Виталий Барабанов, я iOS-разработчик в hh.ru. Недавно мы столкнулись с проблемой: пришёл фидбэк от пользователей о тормозах и фризах в мобильном приложении. Но чтобы установить их причину, нам не хватило данных, которые по дефолту собирает Apple. Что делать в такой ситуации? А запилить собственный сбор метрик: с какой угодно фильтрацией, сбором любой информации, интеграцией со своей аналитикой и наблюдением в дебаг-панели! В статье я хочу поделиться с Хабром, как мы это сделали, сколько времени потратили и как интерпретировали результаты. Читать далее

## Fixing the iterative damping interpolation in video games

DevFeed: [Fixing the iterative damping interpolation in video games](<https://devfeed.tech/articles/fixing-the-iterative-damping-interpolation-in-video-games-26115.md>)

Original publisher: [Read original article](<http://blog.pkh.me/p/41-fixing-the-iterative-damping-interpolation-in-video-games.html>)

Published: 2024-05-18T12:22:15Z

Content type: article

Language: en

Sources: [The Last Static Blog RSS](<https://devfeed.tech/sources/the-last-static-blog-rss.md>)

Topics: [Game Development](<https://devfeed.tech/topics/game-development.md>), [Godot](<https://devfeed.tech/topics/godot.md>), [callback](<https://devfeed.tech/topics/callback.md>), [function](<https://devfeed.tech/topics/function.md>), [Mathematics](<https://devfeed.tech/topics/mathematics.md>)

Tags: [callback](<https://devfeed.tech/tags/callback.md>), [fps](<https://devfeed.tech/tags/fps.md>), [game](<https://devfeed.tech/tags/game.md>), [game-development](<https://devfeed.tech/tags/game-development.md>), [games](<https://devfeed.tech/tags/games.md>), [math](<https://devfeed.tech/tags/math.md>), [physics](<https://devfeed.tech/tags/physics.md>), [prog](<https://devfeed.tech/tags/prog.md>)

### AI overview

This article explains why repeatedly applying linear interpolation for damping can make game behavior depend on the refresh rate. Using Godot examples, it analyzes the iterative formula and motivates a frame-rate-independent solution.

### Source excerpt

As I'm exploring the fantastic world of indie game development lately, I end up watching a large number of video tutorials on the subject. Even though the quality of the content is pretty variable, I'm very grateful to the creators for it. That being said, I couldn't help noticing this particular bit times and times again: a = lerp(a, B, delta * RATE) Behind this apparent banal call hides a terrible curse, forever perpetrated by innocent souls on the Internet. In this article we will study what it's trying to achieve, how it works, why it's wrong, and then we'll come up with a good solution to the initial problem. The usual warning: I don't have a mathematics or academic background, so the article is addressed at other neanderthals like myself, who managed to understand that pressing keys on a keyboard make pixels turn on and off. What is it? Let's start from the beginning. We're in a game engine main loop callback called at a regular interval (roughly), passing down the time difference from the last call. In Godot engine, it looks like this: func _physics_process(delta: float): ... If the game is configured to refresh at 60 FPS, we can expect this function to be called around 60 times per second with delta = 1/60 = 0.01666.... As a game developer, we want some smooth animations for all kind of transformations. For example, we may want the speed of the player to go down to zero as they release the moving key. We could do that linearly, but to make the stop less brutal and robotic we want to slow down the speed progressively. Linear (top) versus smooth/exponential (bottom) animation Virtually every tutorial will suggest updating some random variable with something like that: velocity = lerp(velocity, 0, delta * RATE) At 60 FPS, a decay RATE defined to 3.5, and an initial velocity of 100, the velocity will go down to 0 following this curve: Example curve of a decaying variable Note velocity is just a variable name example, it can be found in many other contexts If you

## Home streaming my games in 4K

DevFeed: [Home streaming my games in 4K](<https://devfeed.tech/articles/home-streaming-my-games-in-4k-40641.md>)

Original publisher: [Read original article](<https://eviltrout.com/blog/2019-12-23-home-streaming-in-4k/>)

Published: 2019-12-23T00:00:00Z

Content type: article

Language: en

Sources: [Robin Ward](<https://devfeed.tech/sources/robin-ward.md>)

Topics: [Streaming](<https://devfeed.tech/topics/streaming.md>), [pc](<https://devfeed.tech/topics/pc.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [tvOS](<https://devfeed.tech/topics/tvos.md>), [Xbox](<https://devfeed.tech/topics/xbox.md>), [App](<https://devfeed.tech/topics/app.md>), [NVMe](<https://devfeed.tech/topics/nvme.md>)

Tags: [apple-tv](<https://devfeed.tech/tags/apple-tv.md>), [controllers](<https://devfeed.tech/tags/controllers.md>), [devices](<https://devfeed.tech/tags/devices.md>), [fps](<https://devfeed.tech/tags/fps.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [pc](<https://devfeed.tech/tags/pc.md>), [ssd](<https://devfeed.tech/tags/ssd.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [xbox](<https://devfeed.tech/tags/xbox.md>)

### AI overview

The author describes streaming PC games to home televisions instead of building a second gaming PC. The article covers the Steam Link setup on an Apple TV 4K, including Xbox One controller pairing issues, and begins evaluating 4K performance.

### Source excerpt

I have two 4K TVs at home, one in the bedroom and one in my living room. Both have consoles attached. One has a PS4 Pro and one has a Nintendo Switch and both are great. However, I also have a gaming PC in my office, which is quite powerful compared to any home console Mine is equipped with a RTX 2080 TI GPU, and a 9900K processor, so it can play pretty much any new game at 4K with a solid 60 fps on high settings.

## Cooling down with Peloton & Grubhub - olin

DevFeed: [Cooling down with Peloton & Grubhub - olin](<https://devfeed.tech/articles/cooling-down-with-peloton-grubhub-olin-38099.md>)

Original publisher: [Read original article](<https://touchlab.co/2015-07-cooling-down-with-peloton-grubhub>)

Published: 2015-07-09T17:57:42Z

Content type: article

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [async](<https://devfeed.tech/topics/async.md>), [Android](<https://devfeed.tech/topics/android.md>), [android-apps](<https://devfeed.tech/topics/android-apps.md>), [samsung](<https://devfeed.tech/topics/samsung.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-apps](<https://devfeed.tech/tags/android-apps.md>), [app](<https://devfeed.tech/tags/app.md>), [async](<https://devfeed.tech/tags/async.md>), [code](<https://devfeed.tech/tags/code.md>), [community](<https://devfeed.tech/tags/community.md>), [demo](<https://devfeed.tech/tags/demo.md>), [fps](<https://devfeed.tech/tags/fps.md>), [generator](<https://devfeed.tech/tags/generator.md>), [samsung](<https://devfeed.tech/tags/samsung.md>)

### AI overview

A Touchlab meetup recap covering events hosted at Peloton Cycle and Grubhub. The program included talks on asynchronous Android code, improving Android News Feed interaction smoothness, Project Tango, and community app demos.

### Source excerpt

We threw our second annual "Sorry You're Not at I/O" party at Peloton Cycle. Partygoers were greeted with a never-ending supply of pizza & buckets of beer.