# производительность

Published articles for производительность.

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. Что делать в такой ситуации? А запилить собственный сбор метрик: с какой угодно фильтрацией, сбором любой информации, интеграцией со своей аналитикой и наблюдением в дебаг-панели! В статье я хочу поделиться с Хабром, как мы это сделали, сколько времени потратили и как интерпретировали результаты. Читать далее

## Are You Sure You Want to Use MMAP in Your Database Management System?

DevFeed: [Are You Sure You Want to Use MMAP in Your Database Management System?](<https://devfeed.tech/articles/are-you-sure-you-want-to-use-mmap-in-your-database-management-system-24789.md>)

Original publisher: [Read original article](<https://dev.cheremin.info/2022/01/are-you-sure-you-want-to-use-mmap-in.html>)

Author: Ruslan Cheremin (noreply@blogger.com)

Published: 2022-01-30T16:51:00Z

Content type: article

Language: ru

Sources: [\>рабочие заметки](<https://devfeed.tech/sources/source-2.md>)

Topics: [Database](<https://devfeed.tech/topics/database.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [IO](<https://devfeed.tech/topics/io.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>)

Tags: [database](<https://devfeed.tech/tags/database.md>), [io](<https://devfeed.tech/tags/io.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [linux](<https://devfeed.tech/tags/linux.md>), [performance](<https://devfeed.tech/tags/performance.md>), [tag-cb5ff012b3f0](<https://devfeed.tech/tags/tag-cb5ff012b3f0.md>), [tag-e50b791533a6](<https://devfeed.tech/tags/tag-e50b791533a6.md>)

### AI overview

This Russian-language article examines whether memory-mapped files are suitable for database management systems. It argues that their apparent convenience can conceal operational issues requiring effort comparable to implementing a page cache, and that their expected performance advantage is not guaranteed. For modern SSDs and NVM, the cited article reports that memory-mapped reads can deliver 2-20 times lower throughput than direct reads that bypass the file cache, due to virtual-memory overhead such as page eviction and page-table updates.

### Source excerpt

Кажется, что отображение файлов в память (mmap) удобно использовать для реализации баз данных, потому что можно не реализовывать пул страниц, а бесплатно использовать всю машинерию виртуальной памяти, уже существующую в ОС - работать с данными как будто они лежат в памяти, и ОС позаботится почти обо всех деталях. В статье Are You Sure You Want to Use MMAP in Your Database Management System?1

## Оптимизация dotMemory с использованием dotMemory (и не только...)

DevFeed: [Оптимизация dotMemory с использованием dotMemory (и не только...)](<https://devfeed.tech/articles/dotmemory-dotmemory-23931.md>)

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

Author: IlyaAI (JetBrains)

Published: 2021-08-26T06:20:52Z

Content type: article

Language: ru

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

Topics: [.NET](<https://devfeed.tech/topics/net.md>), [jetbrains](<https://devfeed.tech/topics/jetbrains.md>), [ide](<https://devfeed.tech/topics/ide.md>)

Tags: [dotmemory](<https://devfeed.tech/tags/dotmemory.md>), [dottrace](<https://devfeed.tech/tags/dottrace.md>), [jetbrains](<https://devfeed.tech/tags/jetbrains.md>), [net](<https://devfeed.tech/tags/net.md>), [tag-cb5ff012b3f0](<https://devfeed.tech/tags/tag-cb5ff012b3f0.md>), [tag-d1a8ff602d37](<https://devfeed.tech/tags/tag-d1a8ff602d37.md>)

### AI overview

A JetBrains developer describes optimizing a dotMemory algorithm through dogfooding with dotMemory and dotTrace, followed by additional work using dotTrace and BenchmarkDotNet. The investigation centered on excessive memory usage while calculating dominator-tree data.

### Source excerpt

dotMemory -- это профилировщик памяти для .NET от компании JetBrains. А меня зовут Илья, и я из команды разработки этого инструмента. Хочу поделиться историей классического догфудинга: как мы оптимизировали один из алгоритмов в dotMemory с помощью своих же инструментов -- dotMemory и dotTrace (часть 1). Потом еще раз -- с помощью dotTrace, а напоследок еще и с использованием BenchmarkDotNet (часть 2). Поделиться этой историей меня мотивировали статьи 1 и 2, за что их авторам отдельное большое спасибо. Читать далее

## Comparing Rust and Clojure Performance with the Same Solver

DevFeed: [Comparing Rust and Clojure Performance with the Same Solver](<https://devfeed.tech/articles/2-34255.md>)

Original publisher: [Read original article](<https://tonsky.livejournal.com/322450.html>)

Published: 2019-07-08T14:25:55Z

Content type: opinion

Language: ru

Sources: [Tonsky Стой под стрелой](<https://devfeed.tech/sources/tonsky.md>)

Topics: [Rust](<https://devfeed.tech/topics/rust.md>), [Clojure](<https://devfeed.tech/topics/clojure.md>)

Tags: [clojure](<https://devfeed.tech/tags/clojure.md>), [livejournal](<https://devfeed.tech/tags/livejournal.md>), [rust](<https://devfeed.tech/tags/rust.md>), [tag-5e1c061eda96](<https://devfeed.tech/tags/tag-5e1c061eda96.md>), [tag-c40b78a8c8a6](<https://devfeed.tech/tags/tag-c40b78a8c8a6.md>), [tag-cb5ff012b3f0](<https://devfeed.tech/tags/tag-cb5ff012b3f0.md>), [tag-d16a2c26554f](<https://devfeed.tech/tags/tag-d16a2c26554f.md>), [tag-e3028c5e0ab2](<https://devfeed.tech/tags/tag-e3028c5e0ab2.md>)

### AI overview

The author ports an ICFPC solver from Clojure to Rust while keeping the data structures, algorithms, and constants essentially the same, then compares performance. The Rust version is substantially faster, especially in a release build, while requiring careful attention to ownership and allocation.

### Source excerpt

В предыдущем посте я разочаровывался в Clojure, а точнее в тех задачах, которые хочу на ней решать. С языком-то все нормально, он ровно то, за что себя выдает. Просто до какого-то момента и для каких-то задач на это удобно закрывать глаза, ну а мне уже не удобно. Ну и что я сделал. Я пошел учить Rust. Не, ну интересно же, как компьютеры сегодня могут, если их правильно попросить. Чтобы потренироваться я портировал на Раст наше решение из ICFPC. Причем портировал точь-в-точь: все те же структуры данных, те же алгоритмы, те же константы. Ну разве что не персистентные: там, где в Clojure update, в Rust у меня clone() и только потом push/insert, потому что в комплекте персистентные структуры не идут, да и так идиоматичнее. Важно: я не пытался что-то улучшить, срезать углы, реализовать покрасивее, нет: я написал ровно то, что мы и на Clojure написали. Ну, чтобы сравнение было честным. Как только мой решатель начал что-то решать, я сразу же побежал сравнивать производительность. Rust ожидаемо вырывался вперед, но не на безумные цифры. Типа, вместо 4-5 секунд на задачу решал за три. Я даже собрался уже разоблачающий пост писать, что мол язык не важен, важны структуры данных и алгоритмы, в них весь перформанс, а не в том, на каком языке вы их записали. Потом, правда, коллеги подсказали, что я забыл снять с ручника, то есть запускал Rust в debug-билде. Ну и конечно, стоило поставить --release, как скорость выросла раз в двадцать. Впечатляет, да? Самое печальное тут в том, что это все время на одну и ту же работу. Чистый оверхед. Программа на Clojure не выдает какой-то более умный или точный или качественный ответ. Она приходит к тому же финишу, только к ногам привязаны огромные 20-кратные гири. Раст на одном ядре обгоняет Кложу на двенадцати ядрах в 3,5 раза! Можно было бы сказать "но это же низкоуровневый язык, как на нем можно что-то писать"? Писать было непривычно, потому что язык новый, но по ощущениям ничего особенно сложного, когда научишься. Приходится внимательно сле