HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

Refterm v2 - Resource usage, binary splat, glyph sizing, and more

Molly Rocket3 HN recommenders · recommended in 4 months, 2021-2025
YouTube
68K views · 5 years ago · demo · dated

Casey Muratori follows up his refterm proof-of-concept, a GPU-based terminal renderer, with a second part covering memory usage, glyph sizing and correct Unicode and VT handling. It is built to show that a terminal can be fast and correct without heroic effort.

HN points to it as proof that a small, straightforward renderer can beat Windows Terminal on speed and memory, whenever software slowness comes up.

Software performance & optimizationComputer graphics & renderingGraphic design & typography#refterm#gpurendering#windowsterminal#unicode#softwareperformance

10 comments from Hacker News

@jiggawatts2025 · in “Is software abstraction killing civilization? (2021)”

Having personally implemented a Unicode text renderer in both DirectX and OpenGL back in 2002 for the Japanese game market, I dare say that chances are that I know a heck of a lot more than you about high performance multilingual text rendering. Don't presume. You just made the exact same argument that Casey Muratori absolutely demolished very publicly. The Windows Console dev team swore up and down that it was somehow "impossible" to render a fixed-width text console at more than 2 fps on a modern GPU when there are "many colors" used! This is so absurd on its face that it's difficult to even argue against, because you have to do the equivalent of establishing a common scientific language with someone that thinks the Earth is flat. Back in the 1980s, fully four decades ago, I saw (and implemented!) colorful ANSI text art animations with a higher framerate on a 33 MHz 486 PC! That is such a miniscule amount of computer power that my iPhone charger cable has more than that built into the plug to help negotiate charging wattage. It's an order of magnitude less than the computer power a single CPU core can gain (or lose) simply from a 1 C degree change in the temperature of my room! You can't believe how absurdly out-of-whack it is to state that a modern high-end PC would somehow "struggle" with text rendering of any sort ! Here is the developers at Microsoft stating that 2 fps is normal, and it's "too hard" to fix it. "I believe what you’re doing is describing something that mi

CitesView on HN
@jiggawatts2022 · in “Why modern software is slow”

Oh, this is nothing . Windows force-updated my Notepad.exe to the new modern UI version. It is very visibly laggy for basic actions such as opening menus or scrolling through text. You have to be spectacularly bad at programming to make something so basic so slow in 2022 on a very high-end gaming computer. Not just bad, but utterly oblivious. Casey Muratori excoriated the Windows Terminal dev team for failing to achieve a consistent 60 fps when displaying fixed-width text, which is such a trivial exercise that Casey whipped up a demo in like two weekends. [1] Now the Notepad team insisted on following in the Windows Terminal team's footprints and slowing down the other fixed-width text app that needs to be lightweight fast for all sorts of reasons. Nobody needs Notepad to be pretty. Everyone needs it to work .[2] Just amazing to see something like this happen. It's like a slow motion train wreck, ruining one Windows app at a time. [1] These videos are especially "shocking" because the code he wrote is terse, straightforward, lightning fast, and more correct than whatever madness Microsoft was doing. First weekend: link Second weekend: ▶ this video [2] For example, opening a 300 MB log file takes a solid minute of time, which is absurdly slow. It also bloats this to 800 MB of memory usage. For comparison, TextPad opens it in 5 seconds and uses 30 MB of memory. VS Code, an electron application(!) opens in under 2 seconds.

RecommendsView on HN
@prometheus762022 · in “Available today: The Windows 11 2022 Update”

Replying to my own comment to add the proof that instead of double-digit fps terminal text rendering, he was able to achieve 4-digit fps terminal text rendering after a weekend of coding: Part 1 (Proof of concept): link Part 2 (more features added): ▶ this video

CitesView on HN
@dr_zoidberg2022 · in “Rich: A Python library for rich text and formatting in the terminal”

> Layers and layers of cruft which you can trace back to before the computing era. Even those layers and layers don't _have to_ slow things down. Check the refterm "debacle" ([2] for the context, [0, 1] as Muratori's answer to it). It's just the way things are usually programmed doesn't care about performance and how fast things really can be. I sometimes wonder in we're not due for a massive round of optimization on a couple of the layers that we're used to using/depend on. [0] link [1] ▶ this video [2] link

CitesView on HN
@jiggawatts2021 · in “It takes a PhD to develop that”

Don't assume. Casey Muratori produced a highly correct Unicode renderer with correct VT code support. Watch the video: ▶ this video

RecommendsView on HN
@jiggawatts2021 · in “It takes a PhD to develop that”

This particular case was discussed at length on Reddit and on YC News. The general consensus was that the Microsoft developers simply didn't have performance in the vocabulary, and couldn't fathom it being a solvable problem despite having a trivial scenario on their hands with no complexity to it at all. The "complaining developer" produced a proof of concept in just two weekends that notably had more features[1] and was more correct than the Windows Terminal! RefTerm 2 vs Windows Terminal in action: ▶ this video Refterm 2 source: link One of the previous discussions: link [1] Features relevant to the debate at any rate, which was that it is possible to write a high-performance terminal renderer that also correctly renders Unicode. He didn't implement a lot of non-rendering features, but those are beside the point.

CitesView on HN
@siproprio2021 · in “Windows Terminal Preview 1.11 Release”

It's been slow like this (and with lots of user complaints!) since always! Perhaps you guys should borrow some of those Microsoft research phd folks to improve terminal performance[1]. [1]: ▶ this video

CitesView on HN
@jiggawatts2021 · in “WireGuardNT, a high-performance WireGuard implementation for the Windows kernel”

For reference, I've never seen the built-in Windows VPN protocols exceed ~70 Mbps in any scenario. Maybe it's possible with a crossover cable between two Mellanox 100 Gbps NICs, using water-cooled and overclocked CPUs, but not over ordinary networks with ordinary servers. I have gigabit wired Internet to a site with gigabit Internet. Typical performance of SSTP or IKEv2 is 15-30 Mbps. That's 1.5% to 3% max utilisation of the available bandwidth, which is just... sad. It's not the specific site either, other vendor VPNs can easily achieve > 300 Mbps over the same path. It's a year and a half into the pandemic, there are record numbers of people working from home, and Microsoft is the world's second biggest company right now. Meanwhile, volunteers put together a protocol in their spare time that is not only more secure but can also easily do 7.5 Gbps! That needs to be repeated: At least ONE HUNDRED TIMES faster than the "best" Microsoft can offer to their hundreds of millions of enterprise customers that are working from home. Someone from Microsoft's networking team needs to read this, and then watch Casey Muratori's rant about Microsoft's poor track record with performance: ▶ this video

RecommendsView on HN
@mariusor2021 · in “Warp: Fast, Rust-based terminal (waiting list)”

You should look into Casey Muratori's quest[1] against Windows terminal slowness on github and youtube. There were some heated exchanges there and some proof of concept software created to demonstrate both how slow Windows Terminal is, and how fast a GPU enabled terminal can be. [1] The latest video for it is here: ▶ this video

RecommendsView on HN
@fredrikholm2021 · in “Looking at the Performance of Refterm”

In his follow up video[0], he shows that in-use-memory is half that of Windows terminal, whilst simultaneously being >100x faster. Windows terminal chugging away in the background consuming 20% CPU for minutes at a time whilst he's debunking these claims / running the same data on refterm a few times over is hilarious (inflammatory or not). 0. ▶ this video

RecommendsView on HN
[EPILEPSY WARNING] How fast should an unoptimized terminal run?51:04

[EPILEPSY WARNING] How fast should an unoptimized terminal run?

Molly Rocket
193K views • 5 years ago
Refterm Lecture Part 1 - Philosophies of Optimization18:41

Refterm Lecture Part 1 - Philosophies of Optimization

Molly Rocket
93K views • 5 years ago
Simple Code, High Performance2:50:14

Simple Code, High Performance

Molly Rocket
463K views • 5 years ago
Twitter and Visual Studio Rant38:20

Twitter and Visual Studio Rant

Molly Rocket
158K views • 6 years ago
"Clean" Code, Horrible Performance22:41

"Clean" Code, Horrible Performance

Molly Rocket
1.2M views • 3 years ago
Chrome vs Firefox vs Safari vs Servo WebRender0:14

Chrome vs Firefox vs Safari vs Servo WebRender

Jake Archibald
121K views • 10 years ago
I wrote a Raytracer for DOS, 16 VGA colors15:00

I wrote a Raytracer for DOS, 16 VGA colors

Bisqwit
905K views • 15 years ago
HandmadeCon 2016 - History of Software Texture Mapping in Games1:22:13

HandmadeCon 2016 - History of Software Texture Mapping in Games

Molly Rocket
15K views • 9 years ago
Halide Talk25:52

Halide Talk

Andrew Adams
53K views • 12 years ago
"Performance Matters" by Emery Berger42:15

"Performance Matters" by Emery Berger

Strange Loop Conference
502K views • 7 years ago
RIP Windows: Linux GPU Gaming Benchmarks on Bazzite48:13

RIP Windows: Linux GPU Gaming Benchmarks on Bazzite

Gamers Nexus
1.1M views • 11 months ago
Faking RTX Global Illumination vs. RTX | 100% Ray-Traced Game, Pt 127:27

Faking RTX Global Illumination vs. RTX | 100% Ray-Traced Game, Pt 1

Gamers Nexus
260K views • 7 years ago
Windows 7 GUI slowness3:15

Windows 7 GUI slowness

VooD
22K views • 17 years ago
CygnusEd Professional in Action on an Amiga 20000:23

CygnusEd Professional in Action on an Amiga 2000

Casey Muratori
11K views • 12 years ago
CppCon 2019: Matt Godbolt “Path Tracing Three Ways: A Study of C++ Style”55:42

CppCon 2019: Matt Godbolt “Path Tracing Three Ways: A Study of C++ Style”

CppCon
77K views • 7 years ago
How to Speed up a Python Program 114,000 times.59:11

How to Speed up a Python Program 114,000 times.

InfoQ
171K views • 13 years ago
Unity DOTS vs Handbuilt: Sample Project27:56

Unity DOTS vs Handbuilt: Sample Project

Nick Caston
687K views • 6 years ago
Charlie Marsh: uv: An Extremely Fast Python Package Manager40:34

Charlie Marsh: uv: An Extremely Fast Python Package Manager

Jane Street
107K views • 2 years ago
"Performance (Really) Matters" with Emery Berger1:04:48

"Performance (Really) Matters" with Emery Berger

Association for Computing Machinery (ACM)
7K views • 6 years ago
RailsConf 2011: Aaron Patterson, "Double Dream Hands: So Intense!"47:34

RailsConf 2011: Aaron Patterson, "Double Dream Hands: So Intense!"

O'Reilly
26K views • 15 years ago