A completely unoptimized terminal renderer that runs at several thousand FPS
twitter.com
twitter.com
https://github.com/microsoft/terminal/issues/10362
I think there's stuff for a PhD in there. Just not in CS.
- "We engineer for maintainability/extensibility/scalability!"
Except that unlike with performance, they generally don't have any numbers to back their assertions. I know it is much more difficult to measure, but their confidence would have you believe that what they are saying is a well established fact. When I point this out, the responses turn to "I read it in some book. It looks cleaner!". Very hard to turn those discussions into anything productive due to the lack of metrics.
In some company where we offered a web API I couldn’t get the cto to publish statistics about endpoint usage. I became great friends with one of the ops, who I passed an awk script to run on all the web servers’ access files. Turned out that most of the supposedly critical endpoints with tight deadlines were used almost never. But for some reason people REALLY don’t like measuring.
By now I’m in charge of a software team, and I instill into everyone that programming should be engineering work, and emotional judgements are unprofessional and signs of a bad programmer.
Maybe the art they produce seems wasteful to you, but at least it's a conscious choice to "waste" the resources that went into it and for which a ton of sacrifices usually had to be made.
Is it just conceptual frames per second? So for the terminal to be doing 1,000s of frames per second then the graphics card is outputting thousands of frames per second?
I don’t get it. Where are these thousands of FPS?
The internal buffer is being updated thousands of times per second. The user will see their regular 60FPS.
Referring to FPS as the framerate rendered is the standard, when you talk about e.g. the display's output you use Hz. Every professional esports player runs their game at hundreds of FPS if possible, to minimise latency.
I'm honestly more interested in the actual WCET (worst case execution time) would be however I imagine it's at least decent all things considered.
In the end as long as the WCET is only a few milliseconds (sufficient for up to 240Hz monitors) or at least the AET for most loads is beneath that then anything extra just means more power to throw at anything else.
It also means a cooler and quieter laptop, and longer lasting if running on battery.