Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Random ASCII

    randomascii.wordpress.com · Personal blog · on HN since 2011

    Bruce Dawson, a Chrome engineer, writes about Windows performance debugging, floating-point math, and CPU and OS bugs he has tracked down.

    Visit blogRSSHN submissions
    Systems & PerformanceProgrammingHardware & Electronics
    What HN says

    Commenters call it an excellent resource on obscure native code and platform details, and point to it for learning Windows Performance Analyzer.

    Stats for nerds
    274HN people shared it
    195linked in comments
    13Kstory points
    Jun 2026last shared
    2014people per year2026

    Top posts on HN

    1. 1
      There are only four billion floats, so test them all (2014)
      23 people · 1.1K points · first shared 2014 · 175 comments on HN
    2. 2
      24-core CPU and I can’t move my mouse
      15 people · 1K points · first shared 2017 · 499 comments on HN
    3. 3
      Finding a CPU Design Bug in the Xbox 360
      11 people · 837 points · first shared 2018 · 76 comments on HN
    4. 4
      Why modern software is slow
      3 people · 645 points · first shared 2022 · 804 comments on HN
    5. 5
      24-core CPU and I can’t type an email
      4 people · 631 points · first shared 2018 · 310 comments on HN
    6. 6
      Intel Underestimates Error Bounds by 1.3 Quintillion
      12 people · 601 points · first shared 2014 · 73 comments on HN
    7. 7
      O(n^2), again, now in Windows Management Instrumentation
      8 people · 526 points · first shared 2019 · 224 comments on HN
    8. 8
      63 Cores Blocked by Seven Instructions
      6 people · 480 points · first shared 2019 · 84 comments on HN
    9. 9
      Arranging Invisible Icons in Quadratic Time
      9 people · 440 points · first shared 2021 · 111 comments on HN
    10. 10
      5.5 mm in 1.25 nanoseconds
      2 people · 366 points · first shared 2022 · 121 comments on HN

    What HN people wrote when they linked it

    • moregristFeb 2026

      It clearly didn’t come out of game dev. Many people doing high performance work on either embedded or “big silicon” (amd64) in that era were fully aware of the importance of locality, branch prediction, etc

      But game dev, in particular Mike Acton, did an amazing job of making it more broadly known. His CppCon talk from 2014 [0] is IMO one of the most digestible ways to start thinking about performance in high throughput systems.

      In terms of heroes, I’d place Mike Acton, Fabian Giesen [1], and Bruce Dawson [2] at the top of the list. All solid performance-oriented people who’ve taken real time to explain how they think and how you can think that way as well.

      I miss being able to listen in on gamedev Twitter circa 2013 before all hell broke loose.

      [0] https://youtu.be/rX0ItVEVjHc?si=v8QJfAl9dPjeL6BI

      [1] https://fgiesen.wordpress.com/

      [2] https://randomascii.wordpress.com/

    • DavidVoidMay 2025

      There's a great Random ASCII blog post about an obscure FPU issue like this [1].

      - The crash was in a FPU that Chrome barely uses - The instruction that crashed Chrome was thousands of instructions away from the one that triggered the exception - The instruction that triggered the exception was not at fault - The crash only happened because of third-party code running inside of Chrome - The crash was ultimately found to be caused by a code-gen bug in Visual Studio 2015 I've run into this kind of thing once myself (sharing a process with other companies is fun!). It was real confusing to get a stack trace showing our code suddenly crashing on a line of code that was doing the exact same thing with the exact same values as it had always done before.

      [1]: https://randomascii.wordpress.com/2016/09/16/everything-old-is-new-again-and-a-compiler-bug/

    • ryuuchinDec 2025

      The browser isn't exposing it to websites. It's simply due to the fact of playing media that it's lowering the minimum timer resolution on Windows. In the past it would also do this when just scrolling among other things if I remember correctly, I'm not sure if it still does this.

      Firefox uses a different method that doesn't require lowering the minimum timer resolution.

      Either way the global behavior of this is no longer true on modern Windows 10/11 machines (as of Windows 10 2004) as each process must now call timeBeginPeriod if it wants increased timer resolution: https://randomascii.wordpress.com/2020/10/04/windows-timer-resolution-the-great-rule-change/

      https://learn.microsoft.com/en-us/windows/win32/api/timeapi/nf-timeapi-timebeginperiod

    • brucedawsonJan 2023

      I don't think that is true. If they had that many developers burning down performance issues then bugs like this would (IMHO) be getting fixed earlier. Anecdotally it sounds like a lot of customers are hitting this bug and I'd love to know whether it is known, being investigated, or just noticed now.

      I'm sure it has been showing up in their start-menu telemetry.

      I also wonder why they haven't fixed this issue:
      https://twitter.com/BruceDawson0xB/status/1607163439159611392t
      And why this was ever allowed to ship:
      https://randomascii.wordpress.com/2022/09/29/why-modern-software-is-slow-windows-voice-recorder/
      And why this was ever allowed to ship:
      https://randomascii.wordpress.com/2022/07/11/slower-memory-zeroing-through-parallelism/

    • raphlinusOct 2022

      The actual rules are very complicated. C allows greater precision for intermediate results but compilers are sometimes careful to stick to IEEE rounding. [1] contains a good general overview, and [2] talks about FMA in particular. And in [3] I've set up a Godbolt example to play with. By default -O3 gives you FMA, but -O or -O3 with -ffp-contract=off don't. So you absolutely can get different results depending on optimization levels.

      [1]: https://randomascii.wordpress.com/2012/03/21/intermediate-floating-point-precision/

      [2]: https://kristerw.github.io/2021/11/09/fp-contract/

      [3]: https://godbolt.org/z/eTz8o6b3P

    • MarekKnapekMar 2021

      Please don't compute speed-up like that.

      Old time: 6 minutes (360 seconds).
      New time: 1 minute and 50 seconds (110 seconds).
      Speed-up calculated by article author: 1-110/360=0.694 (69.4% saved).
      Speed-up calculated by me: 360/110=3.27 (3 times faster).

      Please calculate it the other way around. It makes great difference when you say you made something 10× faster than when you say you saved 90% of work even if both mean exactly the same thing.

      Bruce Dawson has great article about this: https://randomascii.wordpress.com/2018/02/04/what-we-talk-about-when-we-talk-about-performance/

    Related

    The Old New Thingblogs.msdn.microsoft.com/oldnewthing287 people

    A customer reported an error in the map used by Flight Simulator

    The Old New Thing
    Company · last shared 2020
    Herb Suttergotw.ca84 people

    Ritchie, Stroustrup, and Gosling interview

    Herb Sutter
    Personal · last shared 2026
    Arm Community Blogcommunity.arm.com147 people

    An update on GNU performance

    Arm Community Blog
    Company · last shared 2025
    Paul Khuongpvk.ca106 people

    SBCL: The Ultimate Assembly Code Breadboard

    Paul Khuong
    Personal · last shared 2026
    Cal Patersoncalpaterson.com102 people

    Firefox usage is down despite Mozilla's top exec pay going up

    Cal Paterson
    Personal · last shared 2026
    Rachel Krollrachelbythebay.com493 people

    fork() can fail

    Rachel Kroll
    Personal · last shared 2026
    Alexander Yeenumberworld.org51 people

    Zen5's AVX512 Teardown and More

    Alexander Yee
    Personal · last shared 2026
    The Morning Paperblog.acolyer.org606 people

    Local-first software: you own your data, in spite of the cloud

    The Morning Paper
    Personal · last shared 2026