frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Amazon Web Services – Four Years and Out

https://www.adventuresinoss.com/aws-four-years/
158•RyeCombinator•2h ago•33 comments

Microsoft open-sources "the earliest DOS source code discovered to date"

https://arstechnica.com/gadgets/2026/04/microsoft-open-sources-the-earliest-dos-source-code-disco...
188•DamnInteresting•6h ago•38 comments

Why Is Vivado 2026.1 Dropping Linux Support for Free Tier?

https://adaptivesupport.amd.com/s/question/0D5Pd00001YQLdMKAX/why-is-vivado-20261-dropping-linux-...
90•zdw•3h ago•15 comments

Scammers are abusing an internal Microsoft account to send spam links

https://techcrunch.com/2026/05/21/scammers-are-abusing-an-internal-microsoft-account-to-send-spam/
115•spike021•6h ago•30 comments

Wake up! 16b

https://hellmood.111mb.de/wake_up_16b_writeup.html
178•MaximilianEmel•6h ago•11 comments

Alexander Grothendieck Revolutionized 20th-Century Mathematics

https://www.quantamagazine.org/how-alexander-grothendieck-revolutionized-20th-century-mathematics...
38•anujbans•4h ago•6 comments

The C64 Dead Test Font

https://www.masswerk.at/nowgobang/2026/c64-dead-test-font
20•masswerk•3h ago•2 comments

Time to talk about my writerdeck

https://veronicaexplains.net/my-first-writerdeck/
357•hggh•12h ago•205 comments

Green card seekers must leave U.S. to apply, Trump administration says

https://www.nytimes.com/2026/05/22/us/politics/green-card-changes-trump.html
814•tlhunter•1d ago•1385 comments

On The <dl> (2021)

https://benmyers.dev/blog/on-the-dl/
381•ravenical•18h ago•110 comments

My two-part desk setup (2025)

https://arslan.io/2025/11/18/my-two-part-desk-setup/
269•James72689•3d ago•154 comments

Neoclassical C++: segmented iterators revisited

https://boostedcpp.net/2026/05/18/neoclassical-c-segmented-iterators-revisited-1/
17•ibobev•1d ago•1 comments

'Fuck you, Bambu': How one private message could change the face of 3D printing

https://www.theverge.com/tech/931532/bambu-agpl-pawel-jarczak-open-source-threat-dmca-github
86•tambourine_man•3h ago•44 comments

Sales and Dungeons: Thermal printer TTRPG utility

https://sales-and-dungeons.app/
84•hyperific•2d ago•28 comments

Converting an Integer to a Decimal String in Under Two Nanoseconds

https://onlinelibrary.wiley.com/doi/10.1002/spe.70079
5•mpweiher•4d ago•1 comments

My I3-Emacs Integration

https://khz.ac/software/i3-integration.html
58•nosolace•8h ago•11 comments

Judson's Last Ride

https://www.realclearpolitics.com/articles/2026/05/22/judsons_last_ride_154150.html
89•NaOH•19h ago•4 comments

The Art of Money Getting

https://kk.org/cooltools/book-freak-210-the-art-of-money-getting/
267•dxs•18h ago•149 comments

Buildcraft Is a Compiler Problem

https://mitander.xyz/posts/buildcraft-is-a-compiler-problem/
13•mitander•1d ago•3 comments

Hengefinder: Finding when the sun aligns with your street

https://victoriaritvo.com/blog/hengefinder/
137•evakhoury•1d ago•31 comments

Limerick

https://www.worldwidewords.org/surprise.html
7•jruohonen•1h ago•1 comments

Air France and Airbus found guilty of manslaughter over 2009 plane crash

https://www.bbc.com/news/articles/czd2qmdvmq6o
66•baal80spam•11h ago•41 comments

Byrne's Euclid

https://www.c82.net/euclid/
42•layer8•9h ago•12 comments

Schlitz Is Gone, but First It's Getting One Last Hurrah

https://www.milwaukeemag.com/schlitz-is-gone/
24•NaOH•2d ago•10 comments

Reverse engineering circuitry in a Spacelab computer from 1980

https://www.righto.com/2026/05/reverse-engineering-spacelab-computer.html
101•elpocko•15h ago•21 comments

80386 microcode disassembled

https://www.reenigne.org/blog/80386-microcode-disassembled/
243•nand2mario•19h ago•46 comments

.NET (OK, C#) finally gets union types

https://andrewlock.net/exploring-the-dotnet-11-preview-2-dotnet-gets-union-types/
180•ingve•1d ago•171 comments

New map reveals lost roads of the Roman Empire

https://www.scientificamerican.com/article/new-high-resolution-map-transforms-what-we-know-about-...
71•sohkamyung•3d ago•8 comments

Kindle loyalists scramble as Amazon turns page on old e-readers

https://www.reuters.com/business/retail-consumer/kindle-loyalists-scramble-amazon-turns-page-old-...
154•cf100clunk•4d ago•171 comments

-​-dangerously-skip-reading-code

https://olano.dev/blog/dangerously-skip/
136•fagnerbrack•21h ago•131 comments
Open in hackernews

Doom GPU Flame Graphs

https://www.brendangregg.com/blog/2025-05-01/doom-gpu-flame-graphs.html
107•zdw•1y ago

Comments

forrestthewoods•1y ago
Neat.

I’ll be honest, I kinda don’t get flame graphs. I mean I understand what they are. I have just always strictly preferred a proper timeline view ala Superluminal or Tracy.

Using 20ms chunks for a game is fine but also super weird. Ain’t no game using 20ms frames! So if you were using this for real you’d get all kinds of oddities. Just give me a timeline and call it a day plz.

tibbar•1y ago
Flame graphs are definitely less sophisticated than Superluminal/Tracy/etc, but that's a part of the attraction - you can visualize the output of many profiling tools as a flamegraph without prior setup. I also think it's a pretty good UX for the "which function is the performance bottleneck" game.
Veserv•1y ago
The difference between a flame graph and a trace visualization is that a flame graph is a aggregate/summary visualization. It helps visualize total runtime attributed to functions.

It is like the difference between seeing the mean of a distribution and seeing a plot of every datapoint in the distribution. They are useful for different purposes.

An example of how you might use it in conjunction with a trace visualizer is that you would select a time span in a trace and generate a flame graph for the selection. This would show you which functions and call stacks were responsible for most of the execution time in the selection. You would then use that to find one of those call stacks in the trace to examine how they execute to see if it makes sense.

gerdesj•1y ago
The game model might involve 20ms time slices. The frame rate is simply the best available visualisation of the "action" that the machine can manage.

So, you have your game model, input and output. Output needs to be good enough to convince you that you are in control and immersive enough to keep you engaged and input needs to be responsive enough to feel that you are in control. The model needs to keep track of and co-ordinate everything.

I'm old enough to still own a Commodore 64 and before that I played games and wrote some shit ones on ZX 80, 81 and Speccies. I typed in a lot of DATA statements back in the day (40 odd years ago)!

When you pare back a game to the bare basics - run it on a box with KB to deal with instead of GB - you quite quickly get to understand constraints.

Things are now way more complicated. You have to decide whether to use the CPU or the GPU for each task.

fennecbutt•1y ago
I think flame graphs are perfect for what they do, compressing multi dimensional data down into fewer dimensions.

It makes it a lot easier to visualise at a glance, and sometimes an issue is obvious from the flame graph.

But you're right, for complex issues I find I need to dig deeper than that and view everything linearly.

They're just nice for glaring issues, it's like a mini dashboard almost.

bobmcnamara•1y ago
Loads of older console games used 20ms fields in Europe.

Edit: also my laptop can, but I'm not into that sort of thing.

hyperman1•1y ago
Makes sence. 20ms is 50hz, the European net frequency. All TVs sync with it, so old game consoles had to.
forrestthewoods•1y ago
If if the game runs at 20ms frames you don’t want to sample an arbitrary sequence of 20ms slices.
brendangregg•1y ago
The origin problem for flame graphs was MySQL server performance involving dozens of threads: as a timeline view you need dozens of timelines, one for each thread, since if you render it on one (I know this is probably obvious) then you have samples from different threads from one moment to the next turning the visualization into hair. Flame graphs scale forever and always show the aggregate: any number of threads, servers, microservices, etc.

I think great UI should do both: have a toggle for switching between flame graphs (the summary) and timelines (aka "flame charts") for analyzing time-based patterns. I've encouraged this before and now some do provide that toggle, like Firefox's profiler (Flame Graphs and Stack Charts for timeline view).

As for 20ms, yes, we do want to take it down. A previous HN comment from years ago, when I first published FlameScope, was to put a game frame on the y-axis instead of 1 second, so now each column shows the rendering of a game frame, and you can see time-offset patterns across the frames (better than a time-series timeline). We started work on it and I was hoping to include it in this post. Maybe next one.

forrestthewoods•1y ago
I’ve never actually seen a profiler that shows quite what I want. I have lots of subsystems running at different rates. Gameplay at 30Hz, visual render at 90Hz, physics at 200Hz, audio at some rate, network, some device, etc.

So what I want is the ability to view each subsystem in a manner that lets me see when it didn’t hit its update rate. I have many many different frame rates I care about hitting.

Of course things even get more complex when you have all the work broadly distributed with a job system…

foota•1y ago
Timelines are good when things happen once, but when you have repeated calls to functions from different places etc., a flame graph helps a lot.

Sandwich views supporting collapsing recursion are the secret sauce for flame graphs imo. See e.g,. https://pyroscope.io/blog/introducing-sandwich-view/

coherentpony•1y ago
> Ain’t no game using 20ms frames!

A frame every 20ms equates to 50 frames per second. Doesn't seem too unreasonable for a modern game.

60 frames per second would be one frame every ~16 ms.

forrestthewoods•1y ago
Correct. Which means that every 20ms pixel slices two or three frames. Which is a really really bad way to profile!
brendangregg•1y ago
I could just regenerate these heat maps with 60 rows instead of 50. I'm limited by the sampling rate that was captured in the profile data file. To provide even more resolution (so you had many samples within a game frame) I'd need to re-profile the target with a higher frequency.

When Martin, my colleague at Netflix at the time, built a d3 version of FlameScope, he put a row selector in the UI: https://github.com/Netflix/flamescope

wtallis•1y ago
It sounds like your problem might be not with the visualization itself, but with the underlying idea of a sampling profiler as opposed to tracing every single call from every single frame.
forrestthewoods•1y ago
No. Sampling profilers are great. Most powerful is of course a mix of sampling and instrumentation. But nothing beats the feeling of a sampling profiler fixing big issues in under 5 minutes.

Flamegraphs are a nice tool to have in the bag I suppose. But they’re more tertiary than primary or even secondary to me.

coherentpony•1y ago
> Correct. Which means that every 20ms pixel slices two or three frames. Which is a really really bad way to profile!

If 20 ms is a reasonable frame time for a modern game, why is it an unreasonable thing to profile?

I understand other, shorter, frame times may be interesting to profile too. My point is that if you want to understand a reasonable or realistic workload, then it should also be reasonable to profile that workload.

forrestthewoods•1y ago
The issue isn’t that 20ms is an unreasonable slice size. The issue is you can’t perform an arbitrary slice.

Imagine a game that runs at 50Hz/20ms frame. Unusual but let’s go with it because the exact value doesn’t matter. Ideally this update takes AT MOST 20ms. Otherwise we miss a frame. Which means most frames actually take maybe 15ms. And some may take only 5ms. If you drew this on a timeline there would be obvious sleeps waiting for the next frame to kick off.

If you take an arbitrary sequence of 20ms slices you’re not going to capture individual frames. You’re going to straddle frames. Which is really bad and means each pixel is measuring a totally different body of work.

Does that make sense?

coherentpony•1y ago
Ah yes. Ok.

Yes, that makes perfect sense. Thanks.

rawling•1y ago
A few comments, 2 days ago

https://news.ycombinator.com/item?id=43846283

gitroom•1y ago
Pretty cool seeing people actually care so much about profiling tools. You think we ever get one tool that really covers enough to keep everyone happy?
saagarjha•1y ago
Considering that I hate flamegraphs probably not
benpoulson•1y ago
What’s your preferred way of visualising performance?
saagarjha•1y ago
Depends but if it's samples I'd usually reach for a hierarchical outline view. If it's time series data then probably a bunch of tracks.
badsectoracula•1y ago
Flamegraphs are neat but the call graph in Luke Stackwalker[0] was more immediately obvious to me (especially since it draws a thick red line for the hottest path) than them.

Another approach is one i used for a profiler i wrote some time ago (and want to port to Linux at some point)[1] which displays the hottest "traces" (i.e. callstacks). One neat aspect of this is that you can merge multiple traces using a single function as the "head" (so, e.g., if there are two separate traces that contain a function "Foo" somewhere, you can select to use "Foo" as the starting point and they'll be treated as the same trace with their hitcounts combined).

[0] https://lukestackwalker.sourceforge.net/

[1] http://runtimeterror.com/tools/fpwprof/index.html

MathMonkeyMan•1y ago
Love the screenshot with the million shotgunners and cyberdemons, and a chainsaw.
victor_xuan•1y ago
May be I am too young but can someone explain this obsession with Doom on Hacker News?
prox•1y ago
It’s not an obsession, it’s probably because Doom is easy to understand from a code perspective, and also addresses a lot of graphical/game code techniques, aka its a perfect hobby from a coding perspective to learn, adapt and tweak. It’s actually the perfect example of Hacking.

Also this hacking started early on, so there is probably tons and tons of documentation and data, again making it a great candidate to work with it from a hacking perspective.

hyperman1•1y ago
I've lived trough the doom craze. My perspective:

It was a game that clearly advanced the state of the art. Even in the month before it came out, people were claiming it simply could not be done technically on the underpowered PC technology of that time. Even after it came out, it took others a year to catch up.

Expectations at release were sky high, and Doom still overdelivered. The tech, the gameplay, the esport aspect, the gritty graphics theming. It was all new and daring.

The BSP was an obscure thing nobody understood. It took the DEU people months to wrap their heads around the NODES datastructure.

When the modding tools were finally available, the whole world became 1 big modding community for the same game. That amount of focus on 1 game has never happened before or since. Modding continues to this day, 30 years later.

Then the source code was delivered, for free, to everyone. It was easily readable and told every secret. We all went crazy. It was studied by every programming student. Even today, no other codebase has the same amount of scrutinity, with every bug and detail documented.

Myhouse.wad was a great example of how far a doom mod can be pushed. But it is also a testament to the collective midlife crisis of the doomers from that age, all of us yearning for the good old days.

YuxiLiuWired•1y ago
Is it possible to make Doom in the GPU flame graphs?