Front-End’s Missing Metric: The TBT Window https://lobste.rs/s/8eaumi #performance #web
https://csswizardry.com/2026/06/front-ends-missing-metric-the-tbt-window/
performance
The fastest way to match characters on ARM processors? via @fanf https://lobste.rs/s/u1a0fd #assembly #performance
https://lemire.me/blog/2026/04/19/the-fastest-way-to-match-characters-on-arm-processors/
A 16-byte x86 demo: Matrix rain with sound https://lobste.rs/s/akooh9 #graphics #performance #retrocomputing
https://hellmood.111mb.de//wake_up_16b_writeup.html
Journey in optimising Elixir application by @hauleth https://lobste.rs/s/7mqzck #elixir #erlang #performance
https://hauleth.dev/post/things-about-elixir-you-probably-will-never-need/
Idiomatic Lisp and the nbody benchmark via @nemin https://lobste.rs/s/vtqfx7 #lisp #performance
https://www.stylewarning.com/posts/nbody/
How To Make a Fast Dynamic Language Interpreter https://lobste.rs/s/vrmjge #compilers #performance #plt
https://zef-lang.dev/implementation
I built a latency meter with an Arduino and a photo transistor to answer one question: Is click-to-photon latency higher on Wayland than on X11?
And the answer is: Yes, actually.
⏱️ 42 ms on X11, compositing off
⏱️ 56 ms on X11, compositing on
⏱️ 64 ms on Wayland
⏱️ 71 ms on Windows 10
Tested with Plasma 6.3.4 and Firefox 137. I will improve my methods and confirm these numbers. See replies for details.
#Arduino #DIY #Electronics #X11 #Wayland #Linux #KDE #Plasma #Latency #Performance #Gaming
SIMD-accelerated integer-to-string conversion via @fanf https://lobste.rs/s/5wt32a #performance
https://lemire.me/blog/2026/05/18/simd-accelerated-integer-to-string-conversion/
VideoLAN Publishes Dav2d For Open-Source AV2 Decoder https://lobste.rs/s/rlbrog #performance #release
https://www.phoronix.com/news/Dav2d-Open-Source-AV2-Decode
btype: B-tree based collection types for Go https://lobste.rs/s/0xe7hz #go #performance
https://github.com/tidwall/btype
Tuning PieFed for scale
Out of the box PieFed has some pretty conservative settings, intended for small (less than 10 users) to medium (less than 200 active users) instances running on small servers where memory is constrained.
Now that piefed.social is becoming busier I’ve needed to tweak a few settings:
Gunicorn
Gunicorn is the service that runs the web app within itself and accepts connections from nginx. When you get a lot of traffic sometimes gunicorn can run out of capacity to serve all the incoming requests.
Each request uses one thread so you need to have as many threads as your CPU cores can handle but not so many that they get flooded and start to context switch too much. The variables in gunicorn.conf.py called ‘processes’ and ‘threads’ determine this. The total number of threads will be processes * threads so keep ‘processes’ low and increase ‘threads’ as needed.
There will be a point where adding more threads makes things worse rather than better.
Celery
Celery is the service used to execute background tasks such as processing federation activity, sending emails and so on. If you can see the amount of RAM used by redis (used to queue up things for celery to work on) is growing larger and larger then you probably don’t have enough celery worker processes.
Bare metal celery: in /etc/default/celeryd, tweak the autoscale parameter in CELERY_OPTS. The numbers are the maximum and minimum amount of processes to run. Max should probably be no more than 2x your CPU cores.
Docker-based celery: in entrypoint_celery.sh, look for the autoscale parameter. You’ll need to rebuild the docker image after changing this.
Database connections
A default docker-based instance will be using postgresql with no tuning at all, which will not scale well. In .env.docker you can set some environment variables to give Postgresql more to work with. e.g.
POSTGRES_SHARED_BUFFERS=2GBPOSTGRES_EFFECTIVE_CACHE_SIZE=3GBPOSTGRES_WORK_MEM=8MB
and/or increase shm_size in compose.yaml to be 25% of RAM. See PGTune for details.
Bare-metal servers can tune their postgresql server by creating a file in /etc/postgresql/14/main/conf.d/whatever.conf.
Ensure your postgresql server can handle 300 connections – it’s not just each gunicorn thread that will be connecting, there will be celery processes too.
Here is the piefed.conf I’m using on piefed.social with ~1000 MAU, 8 CPU cores and 16 GB of RAM:
synchronous_commit = off
wal_writer_delay = 2000ms
max_connections = 300
shared_buffers = 6GB
effective_cache_size = 9GB
maintenance_work_mem = 1GB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 100
random_page_cost = 1.1
effective_io_concurrency = 200
work_mem = 10MB
huge_pages = off
min_wal_size = 1GB
max_wal_size = 3GB
wal_compression = on
max_worker_processes = 8
max_parallel_workers_per_gather = 3
max_parallel_workers = 8
max_parallel_maintenance_workers = 4
max_worker_processes should be the number of CPU cores you have.
The main web app container / service has two environment variables that control the database connection pool and the defaults (used when no value is in the .env) are quite small. Try:
DB_MAX_OVERFLOW = 70DB_POOL_SIZE = 30
Don’t panic
This is an evolving situation and there is no one size fits all configuration. Drop in to chat.piefed.social to share what you find or ask for help.
Afro-Scottish Poetry Event 2025
25 July, Glasgow. Tickets £0–£10
A multicultural evening of poetry, music, & storytelling that celebrates African & Scottish identities through powerful performances. Created & curated by Chisom Okoronkwo with U Belong Glasgow
https://www.eventbrite.co.uk/e/afro-scottish-poetry-event-2025-tickets-1396145632169
#Scottish #literature #African #poetry #storytelling #performance #identity #Glasgow
PS3 emulation is fast on ARM now https://lobste.rs/s/ykzv1a #video #assembly #performance
https://www.youtube.com/watch?v=-aI_XEwmKFk
Afro-Scottish Poetry Event 2025
25 July, Glasgow. Tickets £0–£10
A multicultural evening of poetry, music, & storytelling that celebrates African & Scottish identities through powerful performances. Created & curated by Chisom Okoronkwo with U Belong Glasgow
https://www.eventbrite.co.uk/e/afro-scottish-poetry-event-2025-tickets-1396145632169
#Scottish #African #literature #poetry #storytelling #performance #identity #Glasgow #AfroScottish
SPEC CPU 2026 Overview / What's New? via @fanf https://lobste.rs/s/7cwjub #performance
https://www.spec.org/auto/cpu2026/Docs/overview.html
Who even uses jemalloc in 2026 anyway? (many major projects) https://lobste.rs/s/vr4rsc #c #c++ #performance #rust
https://theconsensus.dev/p/2026/04/16/who-even-uses-jemalloc-anyway.html
Cutting Python Web App Memory Over 31% https://lobste.rs/s/bmujfc #performance #python
https://mkennedy.codes/posts/cutting-python-web-app-memory-over-31-percent/
Why false sharing alignment should be 128 bytes on x64 https://lobste.rs/s/no3kkj #performance
https://monoid.github.io/posts/false-sharing-alignment/
Revealing the frontier with stacks and queues https://lobste.rs/s/aw5hgu #performance #rust
https://dystroy.org/blog/stack-and-queues/
Eliminating Go bound checks with unsafe https://lobste.rs/s/1kpfog #go #performance
https://blog.andr2i.com/posts/2026-07-06-eliminating-go-bound-checks-with-unsafe
HT-NRC: A high-throughput and noise-resilient lossless image compression architecture for deep-space CMOS cameras https://lobste.rs/s/4wzsn8 #graphics #performance
https://www.mdpi.com/2076-3417/16/6/2873
How we built Elasticsearch simdvec to make vector search one of the fastest in the world via @jordimoncompanys https://lobste.rs/s/c6j0fh #performance
https://www.elastic.co/search-labs/blog/elasticsearch-vector-search-simdvec-engine