9 ms·
Their commitment to performance is a beautiful thing. Imagine all projects were similarly committed.
by emseetech 1y ago
Their commitment to performance is a beautiful thing.
Imagine all projects were similarly committed.
- byteknight 1y agoSeems so easy! You only need the entire world even tangentially related to video to rely solely on your project for a task and you too can have all the developers you need to work on performance!
- ackfoobar 1y agoI seem to recall that they lamented on twitter the low amount of (monetary or code) contribution they got, despite how heavily they are used.
- lo_zamoyski 1y agoNo one is forcing them to produce code for free. There is something toxic about giving things away for free with the ulterior motive of getting money for it.
- imchillyb 1y agoIt’s market manipulation, with the understanding that free beats every other metric. Once the competition fails, the value extraction process can begin. This is where the toxicity of our city begins to manifest. Once there is no competition remaining we can begin eating seeds as a pastime activity. The toxicity of our city; our city. How do you own the world? Disorder. Disorder…
- godelski 1y agoThey have some fire tweets, especially when people say they write things from scratch or boast about how much money they make with ffmpeg wrappers https://x.com/FFmpeg/status/1775178803129602500 https://x.com/FFmpeg/status/1775178803129602500 https://x.com/FFmpeg/status/1856078171017281691 https://x.com/FFmpeg/status/1856078171017281691 https://x.com/FFmpeg/status/1950227075576823817 https://x.com/FFmpeg/status/1950227075576823817 Oh, and here's one making fun of HN comments. Hi ffmpeg :) https://x.com/FFmpeg/status/1947076489880486131 https://x.com/FFmpeg/status/1947076489880486131
- hdgvhicv 1y agoWasn’t that a trillion dollar company demanding support for their little problem?
- hluska 1y agoYou know friend, if open source actually worked like that I wouldn’t be so allergic to releasing projects. But it doesn’t - a large swath of the economy depends on unpaid labour being treated poorly by people who won’t or can’t contribute.
- astrange 1y agoffmpeg has competition. For the longest time it wasn't the best audio encoder for any codec[0], and it wasn't the fastest H.264 decoder when everyone wanted that because a closed-source codec named CoreAVC was better[1]. ffmpeg was however, always the best open-source project, basically because it had all the smart developers who were capable of collaborating on anything. Its competition either wasn't smart enough and got lost in useless architecture-astronauting[2], or were too contrarian and refused to believe their encoder quality could get better because they designed it based on artificial PSNR benchmarks instead of actually watching the output. [0] For complicated reasons I don't fully understand myself, audio encoders don't get quality improvements by sharing code or developers the way decoders do. Basically because they use something called "psychoacoustic models" which are always designed for the specific codec instead of generalized. It might just be that noone's invented a way to do it yet. [1] I eventually fixed this by writing a new multithreading system, but it took me ~2 years of working off summer of code grants, because this was before there was much commercial interest in it. [2] This seems to happen whenever I see anyone try to write anything in C++. They just spend all day figuring out how to connect things to other things and never write the part that does anything?
- godelski 1y ago> They just spend all day figuring out how to connect things to other things and never write the part that does anything? I see a lot of people write software like this regardless of language. Like their job is to glue pieces of code together from stack overflow. Spending more time looking for the right code that kinda sorta works than it would take to write the code which will just work.
- astrange 1y agoAt least they get there. I was thinking about two types of people; one gets distracted and starts writing their own UI framework and standard library and never gets back to the program. The other starts writing a super-flexible plugin system for everything because they're overly concerned with developing a community to the point they don't want to actually implement anything themselves. (In this space the first was a few different mplayer forks and the second was gstreamer.)
- Almondsetat 1y agoYeah no, I'd like non-performance critical programs to focus on other things than performance thank you
- EliRivers 1y agoSurely all programs are performance critical. Any program we think isn't is just a program where the performance met the criteria already.
- 6SixTy 1y agoSafety critical systems say hello.
- oguz-ismail 1y ago> Safety critical systems Any concrete examples where we can see the code?
- pjc50 1y agoSafety critical is of course also performance critical to an even greater extent than games. You can usually get away with a dropped frame but you can't miss, say, valve timings.
- lo_zamoyski 1y ago
- therealmarv 1y agolike Slack or Jira... lol.
- sfn42 1y agoThat would be an enormous waste of time. 99.9% of software doesn't have to be anywhere near optimal. It just has to not be wasteful. Sadly lots of software is blatantly wasteful. But it doesn't take fancy assembly micro optimization to fix it, the problem is typically much higher level than that. It's more like serialized network requests, unnecessarily high time complexities, just lots of unnecessary work and unnecessary waiting. Once you have that stuff solved you can start looking at lower level optimization, but by that point most apps are already nice and snappy so there's no reason to optimize further.
- harikb 1y agoSorry, I would word it differently. 99.9% software should be decently performant. Yes, don't need 'fancy assembly micro optimization'. That said, today some large portion of software is written by folks who absolutely doesn't care about performance - just duct-taping some sh*t to somehow make it work and call it a day.
- sfn42 1y agoSeems to me like we're in agreement.
- pjmlp 1y agoPeople not paying attention on data structures and algorithms classes, or never bothering to learn them in first place.
- godelski 1y agoThere's tons of backlash here as if people think better performance requires writing in assembly. But to anyone complaining, I want to know, when was the last you pulled out a profiler? When was the last time you saw anyone use a profiler? People asking for performance aren't pissed you didn't write Microsoft Word in assembly we're pissed it takes 10 seconds to open a fucking text editor. I literally timed it on my M2 Air. 8s to open and another 1s to get a blank document. Meanwhile it took (neo)vim 0.1s and it's so fast I can't click my stopwatch fast enough to properly time it. And I'm not going to bother checking because the race isn't even close. I'm (we're) not pissed that the code isn't optional, I'm pissed because it's slower than dialup. So take that Knuth quote you love about optimization and do what he actually suggested. Grab a fucking profiler, it is more important than your Big O
- nwallin 1y agoAnother datapoint that supports your argument is the Grand Theft Auto Online (GTAO) thing a few months ago.[0] GTAO took 5-15 minutes to start up. Like you click the icon and 5-15 minutes later you're in the main menu. Everyone was complaining about it for years. Years. Eventually some enterprising hacker disassembled the binary and profiled it. 95% of the runtime was in `strlen()` calls. Not only was that where all the time was spent, but it was all spent `strlen()`ing the exact same ~10MB resource string. They knew exactly how large the string was because they allocated memory for it, and then read the file off the disk into that memory. Then they were tokenizing it in a loop. But their tokenization routine didn't track how big the string was, or where the end of it was, so for each token it popped off the beginning, it had to `strlen()` the entire resource file. The enterprising hacker then wrote a simple binary patch that reduced the startup time from 5-10 minutes to like 15 seconds or something. To me that's profound. It implies that not only was management not concerned about the start up time, but none of the developers of the project ever used a profiler. You could just glance at a flamegraph of it, see that it was a single enormous plateau of a function that should honestly be pretty fast, and anyone with an ounce of curiousity would be like, ".........wait a minute, that's weird." And then the bug would be fixed in less time than it would take to convince management that it was worth prioritizing. It disturbs me to think that this is the kind of world we live in. Where people lack such basic curiosity. The problem wasn't that optimization was hard, (optimization can be extremely hard) it was just because nobody gave a shit and nobody was even remotely curious about bad performance. They just accepted bad performance as if that's just the way the world is. [0] Oh god it was 4 years ago: https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times-by-70/ https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times...
- motorest 1y ago> Imagine all projects were similarly committed. How many projects would have anything to benefit from this focus on optimization, though? There is a reason why the first rule of optimization is "don't do it", and the second (experts only) is "don't do it yet".
- lmm 1y agoAs an industry we are too bad at correctness to even begin to worry about performance. Looking at FFmpeg (who are a pretty good project that I don't want to pick on too much) I see their most recent patch release fixes 3 CVEs from 2023 plus one from this year, and that's just security vulnerabilities, never mind regular bugs. Imagine if half the effort that people put into making it fast went into making it right.