#perf

Jan :rust: :ferris:janriemer@floss.social
2025-12-13

How to use #flamegraphs for #performance #profiling

runbooks.gitlab.com/tutorials/

Off-CPU Analysis - by Brendan Gregg:
brendangregg.com/offcpuanalysi

- On-CPU: where threads are spending time running on-CPU
- Off-CPU: where time is spent waiting while blocked on I/O, locks, timers, paging/swapping, etc.

#Testing #Perf #DataViz #DataVisualization #Flamegraph

Jiří Činčura ↹cincura_net@mas.to
2025-12-03

Profiling hard. #perf

List of functions in hot path.
2025-11-20

Аппаратные брейкпойнты: для чего они нужны и как устроены в Linux

Всем привет! Наша группа занимается RISC-V Linux и загрузчиками в компании «Синтакор». Однажды перед нами возникла задача — реализовать поддержку аппаратных триггеров в ядре Linux и OpenSBI. Она стала началом исследования, в ходе которого я изучил смысл аппаратных триггеров с точки зрения отладчика, их устройство и использование для вотчпойнтов и брейкпойнтов, а также принял участие в совершенствовании поддержки аппаратных триггеров в RISC-V Linux и OpenSBI. Этими знаниями я хотел бы поделиться в статье. Покажу на примерах, как устроены брейкпойнты и вотчпойнты в отладчиках, сравню их программную и аппаратную реализации, покопаюсь в деталях их работы в ядре Linux. Начну с легкого способа сломать GDB, а к каким выводам он приведет, вы узнаете далее под катом. GDB хрясь!

habr.com/ru/companies/yadro/ar

#linux #riscv #breakpoint #perf

2025-11-20

Аппаратные breakpoint’ы: для чего они нужны и как устроены в Linux

Всем привет! Наша группа занимается RISC-V Linux и загрузчиками в компании «Синтакор». Однажды перед нами возникла задача — реализовать поддержку аппаратных триггеров в ядре Linux и OpenSBI. Она стала началом исследования, в ходе которого я изучил смысл аппаратных триггеров с точки зрения отладчика, их устройство и использование для watchpoint’ов и breakpoint’ов, а также принял участие в совершенствовании поддержки аппаратных триггеров в RISC-V Linux и OpenSBI. Этими знаниями я хотел бы поделиться в статье. Покажу на примерах, как устроены breakpoint’ы и watchpoint’ы в отладчиках, сравню их программную и аппаратную реализации, покопаюсь в деталях их работы в ядре Linux. Начну с легкого способа сломать GDB, а к каким выводам он приведет, вы узнаете далее под катом. GDB хрясь!

habr.com/ru/companies/yadro/ar

#linux #riscv #breakpoint #perf

2025-11-19

Small cute animals may have been sacrificed github.com/clojure/clojurescri #cljs #perf

2025-11-14

Randomly thinking about the `shadowrootadoptedstylesheets` proposal today and had some thoughts about how it could support streaming use cases better.

github.com/MicrosoftEdge/MSEdg

#ShadowDOM #Streaming #Web #Perf

UnoDi300 Bushido Run Podcastunodi300@mastodon.uno
2025-11-12

🎙️ #92 ASICS FUJISPEED 4: La Velocità che Trasforma il Tuo Trail!

ASICS FUJISPEED 4: La Velocità che Trasforma il Tuo Trail!Amanti del trail running, preparatevi!Leggerezza incredibile, trazione da paura e un comfort che ti fa volare sui sentieri. Dimentica la fatica, concentrati sul divertimento! #Asics #Fujispeed4 #TrailRunning #ScarpeRunning #Perf...

▶️ podcasters.spotify.com/pod/sho

Web Standardswebstandards_dev
2025-10-29

Evaluating framework performance. Loren Stewart compared 10 meta-frameworks: Marko, SolidStart, SvelteKit, Qwik, and Nuxt deliver 35–39 ms FCP and 29–176 kB bundles. The takeaway is React’s architectural ceiling: even TanStack Start on React ships bundles 2× as large compared to Solid; Angular via Analog remains heavy, while Vue via Nuxt is quite competitive. MPA frameworks like Marko and HTMX ship minimal JS per page, while SPAs pay the baseline runtime cost.

lorenstew.art/blog/10-kanban-b

I built the same app 10 times: evaluating frameworks for mobile performance
Веб-стандартыwebstandards_ru
2025-10-29

Одно и то же приложение 10 раз. Лорен Стюарт сравнил 10 метафреймворков: Marko, SolidStart, SvelteKit, Qwik и Nuxt дают FCP 35–39 мс и бандл от 28,8 до 176,3 КБ. Ключевой вывод — архитектурный потолок React: даже TanStack Start на React даёт вдвое больший бандл, чем тот же TanStack Start c Solid, Angular через Analog остаётся тяжёлым, а Vue через Nuxt вполне конкурентен. MPA на Marko и HTMX везут минимум JS на страницу, тогда как SPA платят базовым рантаймом.

lorenstew.art/blog/10-kanban-b

I built the same app 10 times: evaluating frameworks for mobile performance
La Kamisolelakamisole
2025-10-21

Collectif Toter Winkel
Installation plastique “Les Veilleureuses”

Iels sortent de terre. Iels sont encore et toujours là même si nous ne les voyons plus. Iels cohabitent. C'est grâce à iels que nous sommes ici. Nos morts, nos enterrés et nos incinérées. Nous marchons sur iels et iels nous tiennent debout.

► Insta : collectiftoterwinkel
collectiftoterwinkel.com/was-i

Si tu ne connais pas ce collectif, c'est le moment parfait de le découvrir !

Sculpture de visage aux yeux fermés sortant de terre
Sanyam Khuranacuriouslearner
2025-10-04

Random ordering in Django. order_by('?') works but can be costly on large tables. Prefer order_by(Random()) (Django’s DB function) + LIMIT.

Notes + pitfalls inside.

til.sanyamkhurana.com/#/topics

Sanyam Khuranacuriouslearner
2025-10-04

Tiny guide: run EXPLAIN & EXPLAIN ANALYZE from Django, read the plan, then choose fixes (index? rewrite join?). Notes + pitfalls.
til.sanyamkhurana.com/#/topics

2025-09-19

Do you want to make your:

- AI/ML/LLM training or inference cheaper: shave off 2 to 10% in spend, boosting your recurring profits?

- cryptocurrency mining cheaper: shave off 1 to 4% in spend, boosting your recurring profits?

About us (the founder and principal engineer):
- programming and software engineering (learning, building, solving & shipping) for 40 years
- creator of FOSS nanosecond-scale latency instrumentation lib
- former performance engineering and SRE equiv roles
- rescues and rewrites of sites and MVPs which ran into perf and scaling pain
- author of cheatsheet on performance and scalability
- author of WIP book on HPC

We offer 1 hour of initial consultation and advice for FREE (under NDA if you like)

CONTACT US TODAY!

#AI
#ML
#LLM
#cryptocurrency
#perf
#performance
#scaling
#scalability
#optimization
#tuning
#HPC

CwiiisCwiiis
2025-09-02

I gave a lightning talk on at the @CollaboraOffice 'COOL days' conference a couple of months ago. Forgot to share it at the time, but it was livestreamed and is still available here: youtube.com/live/YyC45N8On30?s - I think this is all common knowledge, but then I'm surprised to find out that it often isn't... So maybe if you're doing webapp development, give it a quick watch and maybe there's something there that might help :)

2025-07-24

That gives us our baseline: bzip2 (in C) vs bzip2 (in Rust). But is it a fair enough comparison? I mentioned initially that I was implementing an lbzip2 "clone" (mostly a PoC for the decompression part). lbzip2 is an other program (a C binary, without a library), that can compress and decompress bzip2 files in parallel. Surely it should be slower than bzip2 since it has the parallel management overhead? 7/N

#lbzip2 #bzip2 #RustLang #perf

2025-07-24

But why? Let's see what perf stat has to say: the Rust version has less instructions, but with much less IPC (Instruction-per-clock); the Rust version also has less branches and misses in general. On the efficiency cores, we see that worse IPC and branch prediction of the Rust version give the advantage to the C version. 6/N

#bzip2 #RustLang #perf

$ taskset -c 7 perf stat --hybrid-merge bzcat  readmes.tar.bz2 ./sample2.bz2 ./re2-exhaustive.txt.bz2 > /dev/null

 Performance counter stats for 'bzcat readmes.tar.bz2 ./sample2.bz2 ./re2-exhaustive.txt.bz2':

            588,12 msec task-clock:u                     #    0,994 CPUs utilized             
                 0      context-switches:u               #    0,000 /sec                      
                 0      cpu-migrations:u                 #    0,000 /sec                      
               446      page-faults:u                    #  758,343 /sec                      
     3 456 193 031      instructions:u                   #    1,98  insn per cycle              (50,00%)
     1 745 552 027      cycles:u                         #    2,968 GHz                         (50,00%)
       704 546 791      branches:u                       #    1,198 G/sec                       (50,00%)
         5 340 059      branch-misses:u                  #    0,76% of all branches             (50,00%)

       0,591535177 seconds time elapsed

       0,584979000 seconds user
       0,002001000 seconds sys$ taskset -c 7 perf stat --hybrid-merge ./target/release/bzcat  readmes.tar.bz2 ./sample2.bz2 ./re2-exhaustive.txt.bz2 > /dev/null

 Performance counter stats for './target/release/bzcat readmes.tar.bz2 ./sample2.bz2 ./re2-exhaustive.txt.bz2':

            558,85 msec task-clock:u                     #    0,999 CPUs utilized             
                 0      context-switches:u               #    0,000 /sec                      
                 0      cpu-migrations:u                 #    0,000 /sec                      
               590      page-faults:u                    #    1,056 K/sec                     
     3 133 799 812      instructions:u                   #    1,89  insn per cycle              (50,00%)
     1 661 572 398      cycles:u                         #    2,973 GHz                         (50,00%)
       612 843 800      branches:u                       #    1,097 G/sec                       (50,00%)
         4 142 294      branch-misses:u                  #    0,68% of all branches             (50,00%)

       0,559153387 seconds time elapsed

       0,557735000 seconds user
       0,000000000 seconds sys$ taskset -c 3 perf stat --hybrid-merge bzcat  readmes.tar.bz2 ./sample2.bz2 ./re2-exhaustive.txt.bz2 > /dev/null

 Performance counter stats for 'bzcat readmes.tar.bz2 ./sample2.bz2 ./re2-exhaustive.txt.bz2':

            906,21 msec task-clock:u                     #    0,999 CPUs utilized             
                 0      context-switches:u               #    0,000 /sec                      
                 0      cpu-migrations:u                 #    0,000 /sec                      
               446      page-faults:u                    #  492,158 /sec                      
     3 456 193 346      instructions:u                   #    1,86  insn per cycle              (50,00%)
     1 854 596 875      cycles:u                         #    2,047 GHz                         (50,00%)
       704 546 792      branches:u                       #  777,463 M/sec                       (50,00%)
         5 697 097      branch-misses:u                  #    0,81% of all branches             (50,00%)

       0,906887464 seconds time elapsed

       0,901669000 seconds user
       0,001987000 seconds sys$ taskset -c 3 perf stat --hybrid-merge ./target/release/bzcat  readmes.tar.bz2 ./sample2.bz2 ./re2-exhaustive.txt.bz2 > /dev/null

 Performance counter stats for './target/release/bzcat readmes.tar.bz2 ./sample2.bz2 ./re2-exhaustive.txt.bz2':

            908,47 msec task-clock:u                     #    0,998 CPUs utilized             
                 0      context-switches:u               #    0,000 /sec                      
                 0      cpu-migrations:u                 #    0,000 /sec                      
               590      page-faults:u                    #  649,441 /sec                      
     3 133 800 308      instructions:u                   #    1,68  insn per cycle              (50,00%)
     1 862 822 196      cycles:u                         #    2,050 GHz                         (50,00%)
       612 843 833      branches:u                       #  674,586 M/sec                       (50,00%)
         5 450 905      branch-misses:u                  #    0,89% of all branches             (50,00%)

       0,910107026 seconds time elapsed

       0,904367000 seconds user
       0,000992000 seconds sys

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst