Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
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

    Parsing JSON Really Quickly: Lessons Learned

    InfoQ

    3 HN recommenders · recommended in 5 months, 2020–2026

    YouTube

    47:52 · 86K views · Jan 15, 2020

    Daniel Lemire's QCon talk on how simdjson parses gigabytes of JSON per second. It covers SIMD vectorization, branch prediction and the lessons learned building a fast parser.

    HN points to it as the best explanation of simdjson internals and of why fast parsing is rarely disk-bound.

    Software Engineering & LanguagesSoftware performance & optimizationCompilers, interpreters & program analysisAlgorithms & data structures
    1. 31:19
      CppCon 2016: Nicholas Ormrod “The strange details of std::string at Facebook"CppCon122K views • 10 years ago
    2. 46:40
      Andrew Kelley: A Practical Guide to Applying Data Oriented Design (DoD)ChimiChanga416K views • 2 years ago
    3. 1:50:07
      JSON Parser 100% From Scratch in Haskell (only 111 lines)Tsoding205K views • 6 years ago
    4. 1:13:41
      CppCon 2014: Chandler Carruth "Efficiency with Algorithms, Performance with Data Structures"CppCon235K views • 12 years ago
    5. 36:31
      Hey Underscore, You're Doing It Wrong!InfoQ141K views • 13 years ago
    6. 1:00:17
      Stephan T. Lavavej “Floating-Point <charconv>: Making Your Code 10x Faster With C++17's Final Boss”CppCon41K views • 7 years ago
    7. 59:34
      CppCon 2017: Matt Kulukundis “Designing a Fast, Efficient, Cache-friendly Hash Table, Step by Step”CppCon137K views • 9 years ago
    8. 2:50:14
      Simple Code, High PerformanceMolly Rocket464K views • 5 years ago
    9. 1:21:39
      Making R run Fast - Jan VitekJohn O'Neill865 views • 10 years ago
    10. 59:11
      How to Speed up a Python Program 114,000 times.InfoQ171K views • 13 years ago
    11. 13:45
      A 10x faster TypeScriptMicrosoft Developer608K views • 1 year ago
    12. 1:29:55
      Sorting Algorithms: Speed Is Found In The Minds of People - Andrei Alexandrescu - CppCon 2019CppCon184K views • 7 years ago
    13. 27:43
      Bringing SIMD to the Web via DartInfoQ11K views • 13 years ago
    14. 34:55
      "Outperforming Imperative with Pure Functional Languages" by Richard FeldmanStrange Loop Conference98K views • 5 years ago
    15. 38:38
      "Tree-sitter - a new parsing system for programming tools" by Max BrunsfeldStrange Loop Conference63K views • 8 years ago
    16. 1:02:17
      'Fastware' - Andrei Alexandrescu [ ACCU 2016 ]ACCU Conference34K views • 10 years ago
    17. 1:02:44
      Chris Seaton @ VMSS16: JRuby+Truffle: Why it’s Important to Optimise the Tricky Partssoftdevteamuk5.1K views • 10 years ago
    18. 30:37
      High-performance Tree Wrangling, the APL Way // Aaron Hsu // Dyalog '18Dyalog User Meetings5.8K views • 7 years ago
    19. 52:54
      Rust at speed — building a fast concurrent databaseJon Gjengset225K views • 7 years ago
    20. 46:10
      Understanding the Python GILDavid Beazley127K views • 14 years ago

    5 comments from Hacker News

    1. @dehesaMay 2020· in “So you want to write your own CSV code (2014)”

      I can relate. I have been one of those who started writing a CSV library and went down the rabbit hole of edge cases and configurability. Looking back (and only thinking on productivity) my time would have been better spent doing something else. I did, however, learn quite a lot along the way: - how text is represented in a computer (and all its caveats), - how to identify and tune slow code, - how to vectorize code (thanks to Daniel Lemire's this video ), - how to encapsulate code better, - how to use some great CSV tools out there (thanks to Leon's [LINK] ) - how to better manage and communicate an open source project. All in all, I am still not sure it was a mistake. Moreover when Swift didn't really had, at the time, a good Codable interface to CSV. Next time I encounter a similar problem I will probably just wrap a C library and create a good interface, though. In any case, if you are coding in Swift and find yourself in need of a CSV encoder/decoder, you might want to check [LINK]

      RecommendsView on HN
    2. @RendelloOct 2021· in “Word-Aligned Bloom Filters”

      I find these optimizations fascinating. Anyone familiar with Lemire likely knows about this, but I listened to a podcast episode[1] with him a few days ago and learned about `simdjson`, the tool he authored that parses JSON at 25x the speed of the standard C++ library.[2][3] It's worth looking at if you're into this sort of thing. 1. [LINK] 2. this video 3. [LINK]

      RecommendsView on HN
    3. @D4ckardJan 2024· in “The One Billion Row Challenge”

      Daniel Lemire has an interesting talk on this: this video . They key takeaway is that the disk is rarely the bottleneck.

      RecommendsView on HN
    4. @avianAug 2020· in “Simdjson: Parsing gigabytes of JSON per second”

      The GitHub page links to a video that explains some of the internals [1]. Can someone comment on the result that they show at 14:26? My understanding is that they run a code that does 2000 branches based on a pseudo-random sequence. Over around 10 runs of that code, the CPU supposedly learns to correctly predict those 2000 branches and the performance steadily increases. Do the modern branch predictors really have the capability to remember an exact sequence of past 2000 decisions on the same branch instruction? Also, why would the performance increase incrementally like that? I would imagine that it would remember the loop history on the first run and achieve maximum performance on the second run. I doubt that there's really a neural net in the silicon doing this as the author speculates. [1] this video

      CitesView on HN
    5. @ubedanJul 2026· in “GigaToken: ~1000x faster Language model tokenization”

      Github: [LINK] It showcases an especially ingenious scheme for escaping json strings, as well as the other tokens necessary to parse json. Daniel Lemire - One of the authors at QCon 2019: this video Another Youtube video that explains it: [LINK]

      CitesView on HN