#prog #performancetrap #article
Статья (перевод, от PatientZero, офигенный переводчик) о неожиданных причинах медленного поведения программных систем. Вы вот, например, знали, что работу макбука можно ускорить, заряжая его портом с правой стороны, а не с левой?
Статья (перевод, от PatientZero, офигенный переводчик) о неожиданных причинах медленного поведения программных систем. Вы вот, например, знали, что работу макбука можно ускорить, заряжая его портом с правой стороны, а не с левой?
#prog #performancetrap #rust #article
How a Single Line of Code Made a 24-core Server Slower Than a Laptop
TL;DR:Arc::clone на машине с кучей ядер
How a Single Line of Code Made a 24-core Server Slower Than a Laptop
TL;DR:
pkolaczk.github.io
How a Single Line of Code Made a 24-core Server Slower Than a Laptop | Piotr Kołaczkowski
Imagine you wrote a program for a pleasingly parallel problem, where each thread does its own independent piece of work, and the threads don’t need to coordi...
oleg_log
Красивая история как Rockstar парсили 10мб жсон в GTA V во имя сатане. Для заядлых геймеров даже патчик есть. Неофиц. https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times-by-70/ Напомнило https://t.iss.one/oleg_log/3970
#prog #performancetrap #article
It Can Happen to You
Или как один человек — достаточно умный, чтобы написать невероятно быстрый 3d-визуализатор stl-файлов, допустил ровно ту же самую ошибку, из-за чего время на парсинг формата в текстовой форме превосходило время, потраченное на все остальные стадии визуализации, вместе взятые.
It Can Happen to You
Или как один человек — достаточно умный, чтобы написать невероятно быстрый 3d-визуализатор stl-файлов, допустил ровно ту же самую ошибку, из-за чего время на парсинг формата в текстовой форме превосходило время, потраченное на все остальные стадии визуализации, вместе взятые.
#prog #performancetrap #article s от небезызвестного Daniel Lemire
Mispredicted branches can multiply your running times
Benchmarking is hard: processors learn to predict branches
(thanks @al_tch)
Mispredicted branches can multiply your running times
Benchmarking is hard: processors learn to predict branches
(thanks @al_tch)
🔥2👍1
#prog #rust #performancetrap #article
Contention on multi-threaded regex matching
Или о подводных камнях при использование регекспов в Rust из нескольких потоков
Contention on multi-threaded regex matching
Или о подводных камнях при использование регекспов в Rust из нескольких потоков
More Stina Blog!
Contention on multi-threaded regex matching
Let’s say you need to match the same regex across a large number of strings – perhaps you’re applying a grep-like filter to data generated or received by your program. This toy ex…
💩1
#prog #rust #performancetrap #article
Читайте документацию, программисты.
Upgradable parking_lot::RwLock might not be what you expect
Собственно, статья может быть сведена к единственному абзацу из документации parking_lot (конкретно к методу
Locks this rwlock with upgradable read access, blocking the current thread until it can be acquired.
The calling thread will be blocked until there are no more writers or other upgradable reads which hold the lock. There may be other readers currently inside the lock when this method returns.
Читайте документацию, программисты.
Upgradable parking_lot::RwLock might not be what you expect
Собственно, статья может быть сведена к единственному абзацу из документации parking_lot (конкретно к методу
RwLock::upgradeable_read):Locks this rwlock with upgradable read access, blocking the current thread until it can be acquired.
The calling thread will be blocked until there are no more writers or other upgradable reads which hold the lock. There may be other readers currently inside the lock when this method returns.
More Stina Blog!
Upgradable parking_lot::RwLock might not be what you expect
Let’s say we’re building a simple table indexed by integers starting with 0. Although the keys are contiguous, the table is loaded from key-value pairs that arrive in arbitrary order. T…
💩1
#prog #rust #performancetrap #article
The stable HashMap trap
You read about faster hash functions and switch to one. Most of your code gets the expected speed boost, but some parts mysteriously get slower – much slower, especially when dealing with large hashmaps. If this sounds familiar, you might have encountered the stable HashMap trap.
The stable HashMap trap
You read about faster hash functions and switch to one. Most of your code gets the expected speed boost, but some parts mysteriously get slower – much slower, especially when dealing with large hashmaps. If this sounds familiar, you might have encountered the stable HashMap trap.
More Stina Blog!
The stable HashMap trap
You read about faster hash functions and switch to one. Most of your code gets the expected speed boost, but some parts mysteriously get slower – much slower, especially when dealing with lar…
💩1
#prog #performancetrap #video
"Performance Matters" by Emery Berger
Фактически презентация двух инструментов для анализа производительности.
Первый — Stabilizer. Производительность программ в немалой степени зависит от того, как данные располагаются в памяти, и от окружения, в котором программы запускаются. Автор видео ссылается на статью, которая показывает, что эффект этих переменных может быть весьма значителен и перекрывать даже разницу между оптимизированным и неоптимизированным кодом. Stabilizer в рантайме каждые пол-секунды меняет раскладку кода и данных в куче, что позволяет снимать профиль производительности с учётом всех возможных влияний раскладки кода. Из-за применимости в данном случае центральной предельной теоремы общее влияние раскладки описывается (для достаточно большого количества исследованных данных) нормальным распределением, что позволяет задействовать статистические методы для того, чтобы замерить, насколько вклад в изменение производительности обусловлен изменениями в коде. К сожалению, этот инструмент более активно не развивается.
Второй инструмент (более живой) — это coz, causal profiler. Этот профайлер позволяет ценой небольших аннотаций исходного кода оценить, насколько сильно изменение производительности одного компонента сказывается на производительности системы в целом. Так как просто взять и ускорить код невозможно, coz достигает требуемых эффектов за счёт замедления всех остальных компонентов. В видео рассказывается о том, как coz помог в реальных случаях, на какие неожиданные узкие места указывал и о том, насколько хорошо замеренные прибавки в производительности согласовывались с предсказаниями инструмента.
Забавно, что это видео я уже смотрел, Даня упоминал coz у себя на канале, но только сейчас наткнулся на него снова и выложил у себя.
"Performance Matters" by Emery Berger
Фактически презентация двух инструментов для анализа производительности.
Первый — Stabilizer. Производительность программ в немалой степени зависит от того, как данные располагаются в памяти, и от окружения, в котором программы запускаются. Автор видео ссылается на статью, которая показывает, что эффект этих переменных может быть весьма значителен и перекрывать даже разницу между оптимизированным и неоптимизированным кодом. Stabilizer в рантайме каждые пол-секунды меняет раскладку кода и данных в куче, что позволяет снимать профиль производительности с учётом всех возможных влияний раскладки кода. Из-за применимости в данном случае центральной предельной теоремы общее влияние раскладки описывается (для достаточно большого количества исследованных данных) нормальным распределением, что позволяет задействовать статистические методы для того, чтобы замерить, насколько вклад в изменение производительности обусловлен изменениями в коде. К сожалению, этот инструмент более активно не развивается.
Второй инструмент (более живой) — это coz, causal profiler. Этот профайлер позволяет ценой небольших аннотаций исходного кода оценить, насколько сильно изменение производительности одного компонента сказывается на производительности системы в целом. Так как просто взять и ускорить код невозможно, coz достигает требуемых эффектов за счёт замедления всех остальных компонентов. В видео рассказывается о том, как coz помог в реальных случаях, на какие неожиданные узкие места указывал и о том, насколько хорошо замеренные прибавки в производительности согласовывались с предсказаниями инструмента.
Забавно, что это видео я уже смотрел, Даня упоминал coz у себя на канале, но только сейчас наткнулся на него снова и выложил у себя.
YouTube
"Performance Matters" by Emery Berger
Performance clearly matters to users. For example, the most common software update on the AppStore is "Bug fixes and performance enhancements." Now that Moore's Law has ended, programmers have to work hard to get high performance for their applications. But…
🔥3👍2