5 ms·
I've always felt like software is falling prey to something akin to Jevon's paradox[1]. We have more compute available, so we can be less optimised with our cod
by snet0 4y ago
I've always felt like software is falling prey to something akin to Jevon's paradox[1]. We have more compute available, so we can be less optimised with our code and do more stuff, so we write bad code that tries to do too much (or some kind of causal chain like this) and we're slower than if our hardware had never improved.
The only space free from this appears to be videogames. Gamers regularly complain about "low" framerates that'd put a lot of (at least Windows-based) text renderers to shame. A load screen that you notice is points docked in the review score. I can open Steam, launch CS:GO and get into a game before Teams has finished its morning coffee.
[1] https://en.wikipedia.org/wiki/Jevons_paradox https://en.wikipedia.org/wiki/Jevons_paradox
- bradrn 4y agoFrom the ‘See Also’ section in that Wikipedia article, it looks like for software this is called https://en.wikipedia.org/wiki/Wirth%27s_law https://en.wikipedia.org/wiki/Wirth%27s_law.
- vlovich123 4y agoDynamic high quality text rendering with support for all the random fonts we throw at it is actually very hard and nuanced with a distinct lack of hw acceleration techniques. There’s been some advances to use GPU acceleration but those are still research and haven’t yet seem mainstream adoption afaik. Also using gpu acceleration can decrease battery life (usually ok these days because if I recall correctly the gpu is mostly on anyway for modern compositing. Fundamentally games are actually very different problems amenable to very different kinds of optimization (3d being easier to render than 2d). That’s why all the text you see in 3d games are static menus that are hyper optimized for the limited specific content the ever show in a single font. And the 3d itself has a massive accelerator coprocessor that you need to run at high frame rates. And that accelerator one really works well for extremely parallelizable work which font rendering (and 2D in general) tends not to be (although like I said, there’s research work on making 2d run on GPUs).
- illiarian 4y ago> Dynamic high quality text rendering with support for all the random fonts we throw at it is actually very hard and nuanced with a distinct lack of hw acceleration techniques. There’s been some advances to use GPU acceleration but those are still research and haven’t yet seem mainstream adoption afaik. Are you perhaps on the Microsoft team responsible for the new Widows Terminal who claimed that drawing text fast is a PhD research-level topic? I remember it didn't turn out well
- j16sdiz 4y agoIt turn out breaking RTL handling
- vlovich123 4y agoNope. And it is much higher level than PhD. PhD is akin to someone with a few years of industry experience. A very small minority is extremely talented and can do research well beyond their years, but that’s not PhD level. It’s professorial level work (remember PhDs do some of the practical grunt work but usually a good professor will act as a sounding board / set out the research direction / help unblock students). Consider that Raph and many others like him have spent decades thinking about this problem and working on it off and on and still haven’t fully cracked it. See the PathFinder for example as an attempt to research new techniques to make this work. There’s other work extending this and trying to put it into a real world system. I’ve briefly worked in related areas so I know a little bit about how hard it is and have talked to experts in the GPU space, but it’s not my particular area of interest / expertise. I’d call myself an expert generalist so a lot of the expert-level techniques that domain experts employ can be beyond my skill set (in general vector processing like SIMD and GPUs aren’t areas I’ve delves in too deeply because of how difficult it can be to get really good).
- illiarian 4y agoI feel like this was at least partly written by ChatGPT :) Even if "dynamic high quality text" is hard, I would like to remid you that we're essentially running supercomputers. And most of "dynamic high quality text" on our computers is incredibly static for signinficant amounts of time. Even on CPU we should be able to render any quantity of any quality of any dynamic text at speeds that cannot be perceived by the human eye. (Well, as it turns out, we do exactly that, even on smart phones) And, of course, people have done that, with very little effort. Reason? They actually looked at what a modern computer is capable of, and used that instead of hiding behind high brow "oh, it's beyond PhDs my dear Watson for sho"