Software developer. Creator of the Tzdata and Calendar @elixirlang libraries. Dane living abroad.

Joined March 2007
Elixir is very good at handling many connections without breaking. So you don't need to give it any special attention for good performance. Here a benchmark with a lot of clients posting to the once-campfire repos. Elixir mops the floor with the Rust versions.
Replying to @CaesarDavid_ @dhh
The problem with all of this that keeps getting glossed over is that Elixir is requiring all of this special attention to get it to the numbers it can achieve. I also believe those numbers under represent Elixir's potential but this isn't a "which is fastest" benchmark. It is "which is fastest without knowing how to write in that stack" benchmark.
11
26
8
235
22,317
The Rust ccec30 commit took many passes of performance improvements. And it is still worse under this kind of load than the "one shot" Elixir version (3498c18). The AI agents didn't catch this issue with the Rust code. Nor Go for that matter.
1
27
1,887
"In an overload situation, the rust implementation delivers a whopping 1% of messages to all connected clients, and the Elixir implementation delivers 100% of messages to all clients, applying natural backpressure to writes."
I have a branch with various performance improvements to the Elixir version, focused on specifically the websocket side of things. I didn't spend much time on the rest. The load generation code was flawed in overload scenarios because any socket that had an issue just stayed disconnected forever, so I assume no benchmarks were run in this fashion prior. Now those reconnect on disconnect and continue sending traffic (a more realistic scenario). Most relevant finding: In an overload situation, the rust implementation delivers a whopping 1% of messages to all connected clients, and the Elixir implementation delivers 100% of messages to all clients, applying natural backpressure to writes. Speed is cool. Rust is fast. Speed is not even close to the most important thing when building real applications.
1
3
87
6,151
Lau Taarnskov retweeted
There were **18** performance pull requests to the Rust codebase to get the numbers originally reported, compared to one performance pass to both Elixir and Go versions. However, the Go version was ported from the optimized Rust version.
9
4
282
14,566
I took a stab at improving the performance of Elixir. I used the PR for Elixir that @ZachSDaniel1 posted and worked some more on it. In the benchmark Elixir is now faster than Rust (ccece30 newest commit) for the Sidebar and Search benchmark.
Last conversion of the Campfire from my token stash goes to JavaScript/Express. As with the others, I'm sure you can find more to optimize. But this gives you a sense of what order of magnitude these options exist within with agent-led development. github.com/basecamp/once-cam…
47
46
17
581
106,693
Here's a PR with the code: github.com/basecamp/once-cam… I also tested it against an older rust commit (3fe9f61) - though not the oldest. It looks like there has been a lot of performance improvements made to the rust repo. P.S. The screenshots I posted are missing "req/s".
1
4
1
55
9,130
Lau Taarnskov retweeted
Consider this a soft launch announcement Alcove is a local-first document search library. Install it, point it at your files, and search. Apache 2.0 license. "Index your world. Share it with the universe." github.com/Pro777/alcove
1
1
218
Lau Taarnskov retweeted
This is like saying that, because we have calculators and spreadsheets, nobody needs to learn mathematics or economics.
This Post is from an account that no longer exists. Learn more
7
2
20
3,284
If you read Ontario, CA do you assume it’s in Canada or California? #abbreviations #TLA #acronyms #CA #California #Canada #Ontario
67%CA
33%CA
6 votes • Final results
2
743
Important stuff mentioned by @laut in his talk yesterday at @ElixirConfUY today: date and times are complex 🗓️ You just gotta suck it up and deal with that complexity 🛀
3
12
Lau Taarnskov retweeted
“Make your life easier with the date and time types in Elixir” by @laut right now, the last talk before launch break #ElixirConfUY
3
10
I’m looking forward to speaking at @ElixirConfUY in Uruguay! #myelixirstatus
It’s time for @laut 🎉 With his “Make your life easier with the date and time types in Elixir”, he’ll cover when to use which date and time types, how these types work in #Elixir, and how they align with database types and Ecto. #MyElixirStatus #ElixirConf
4
Do you remember when you joined Twitter? I do! #MyTwitterAnniversary
1
1
Touch screens replacing buttons in cars makes for a terrible user experience and is dangerous too. A dangerous fad. Design is about how it works. Not how it looks.
This Post is from an account that no longer exists. Learn more
2
I had a great time talking to the lovely people in the Elixir Mix podcast. #myelixirstatus
Check out #ElixirMix 𝗗𝗲𝗮𝗹𝗶𝗻𝗴 𝘄𝗶𝘁𝗵 𝗗𝗮𝘁𝗲, 𝗧𝗶𝗺𝗲 𝗮𝗻𝗱 𝗧𝗶𝗺𝗲𝘇𝗼𝗻𝗲𝘀 𝗶𝗻 𝗘𝗹𝗶𝘅𝗶𝗿 𝘄𝗶𝘁𝗵 𝗟𝗮𝘂 𝗧𝗮𝗮𝗿𝗻𝘀𝗸𝗼𝘃 devchat.tv/elixir-mix/emx-10… #Elixir Apple Podcasts @ApplePodcasts @cmaxw @devchattv @knewter @sm_debenedetto @lawik @GroxioLearning
1
7
Want to work with Elixir? @therealreal is hiring. Send me a message if interested. #myelixirstatus @elixirlang #elixirlang #elixir
1
11
33
Remote is possible within North and South America.
1
Lau Taarnskov retweeted
“Imagine that you have all this technology, you have this society, people talking about, 'Oh, we’re going to have self-driving cars and self-flying whatever,' and you can’t even handle leap seconds” — @laut on time in last week's episode of Elixir Wizards smr.tl/2BkcDCJ
3
12