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
    L

    Llogiq

    llogiq.github.io · Personal blog · on HN since 2015

    Llogiq, a Rust developer, writes about Rust performance, comparisons with Java, and how to write idiomatic Rust.

    Visit blogRSSHN submissions
    Languages & CompilersSystems & PerformanceProgramming
    What HN says

    HN commenters cite his posts in discussions of Rust speed, garbage collection versus manual memory management, and the borrow checker.

    Stats for nerds
    43HN people shared it
    54linked in comments
    1.5Kstory points
    Jul 2026last shared
    2015people per year2026

    Top posts on HN

    1. 1
      Rust Performance Pitfalls
      6 people · 438 points · first shared 2017 · 109 comments on HN
    2. 2
      Comparing Rust and Java
      4 people · 279 points · first shared 2016 · 114 comments on HN
    3. 3
      Something Secret This Way Comes
      1 person · 163 points · first shared 2016 · 34 comments on HN
    4. 4
      Yes, I am still learning Rust
      1 person · 135 points · first shared 2020 · 110 comments on HN
    5. 5
      Rust Faster
      3 people · 115 points · first shared 2015 · 59 comments on HN
    6. 6
      Easy Mode Rust
      2 people · 74 points · first shared 2024 · 53 comments on HN
    7. 7
      Rust Sucks If I Fail to Write X
      2 people · 74 points · first shared 2017 · 86 comments on HN
    8. 8
      Rust, a Game Review (2019)
      2 people · 70 points · first shared 2024 · 7 comments on HN
    9. 9
      Rust Mutation Testing
      2 people · 53 points · first shared 2016 · 5 comments on HN
    10. 10
      Corner Cutting vs. Productivity
      1 person · 16 points · first shared 2018 · Discussion on HN

    What HN people wrote when they linked it

    • VeedracOct 2015

      Since I'm lazy, I'll point out that most of the stuff is indirectly mentioned in this write-up: https://llogiq.github.io/2015/10/03/fast.html

      This reminds me I haven't written up stuff for chameneos-redux, which is probably the most fun and over-engineered of them all.

      The fasta/Haskell thing I was mentioning are the parts at "The Haskell code does a quite clever alternative" and "the Haskell code just caches them all in an array".

      The pre-compacting I mention in k_nucleotide was already done in the Scala implementation.

      How parallelism is added also varies. The Scala code does each of the test cases in parallel whilst the Rust parallelizes each internally. (My new Rust code parallelizes even better.)

      Several implementation make their own specialized hash table, and there isn't one particular hash table to implement. This is very important since hash table lookups take a substantial fraction of the time.

      Note that I pick on Haskell and Scala here only because they have the best hacks, not because they're the only ones doing hacks. (I'd imagine listing all of the differences would take much longer than I have time for.)

      thread-ring has lots of different implementations. Some are just scheduled coroutines restricted to a single process, then you have stuff like [1] which uses mutexes, real threads and sets thread affinity. I'm not totally sure what [2] is but I think it's something else entirely. I'm not being too specific here because honestly this benchmark confuses…

    • zozbot234Jan 2020

      > there's even a book teaching how to implement doubly linked lists in Rust [1]

      Doubly-linked lists are an awkward example because the "safety" of a doubly-linked list as a data structure involves fairly complex invariants that Rust can't even keep track of at this point, much less check independently. These things are exactly why the unsafe{} escape-hatch exists and is actively supported. But just looking at the amount of unsafe code in common Rust projects should suffice to figure out that this is not the common case, at all.

      > At the same time, people are using Rust to build non-systems programs, where other languages would be more appropriate (e.g. those with garbage collectors).

      Garbage collectors are good for one thing, and one thing only: keeping track of complex, spaghetti-like reference graphs where cycles, etc. can arise, perhaps even as a side effect of, say, implementing some concurrency-related pattern. Everything else is most likely better dealt with by a Rust-like system with optional support for reference counted data.

      That's without even mentioning the other advantages that a Rust-like ownership system provides over a GC-only language. See e.g. https://llogiq.github.io/2020/01/10/rustvsgc.html this recent post for some nice examples.

    • proyb2Apr 2017

      > You could use LLVM to compile any language to LLVM IR, and then to machine code using a backend. Does that mean every language has the same properties as Rust?

      Nope, it's largely depend on the language design.

      > If Node/Java/Go use GC (or VMs), then aren't they more safe than Rust?

      Yes and No, memory allocation is one of the issue in GC. Go is generally more safe on networking but not security where Rust can manage it securely.

      This is a good read on Java vs Rust: https://llogiq.github.io/2016/02/28/java-rust.html

      https://news.ycombinator.com/item?id=14173716
      https://github.com/stouset/secrets/tree/stack-secrets

      In fact, we don't have to bother much with GC because it's depend on programmers and job availability. GC was created based on the idea that manage memory is hard for large scale project. It work well for Azul Systems, and they have recently advertised for LLVM engineer to bring more performance where JVM could not.

    • jokethrowawayMar 2021

      > Rust programmers tend to do all kinds of little hacks here and there to make the borrow checker happy. It can add up. The borrow checker is perfectly happy when you copy everything.

      Do you mind sharing an example? If you're talking about using to_owned or clone without reason, then it's fully on the developer.
      Some more pitfalls to avodi: https://llogiq.github.io/2017/06/01/perf-pitfalls.html

      What you say definitely doesn't match my experience.
      I would say Java code and Rust code are roughly in the same order of processing speed but the JVM "wastes" some memory. You also have garbage collection complicating performance in some scenarios.

      I'm pretty sure you can get in the same processing speed ballpark with careful programming in both languages.

      Outperforming C++ is definitely harder but Java should be doable.

    • quotemstrJul 2026

      Even if you're one of those people who believes the highest levels of performance require manual memory management (I'd disagree, but whatever), you'd do well to consider the performance of real-world GC against performance of the Arc/Box/dyn/clone-heavy "high-level Rust" [1] [2] that people and LLMs usually write.

      Maybe you can write a carefully-tuned arena-and-slotmap that beats the pants off any GC. GC doesn't have to compete against P99.9 systems programming excellence. It has to compete against an endless soup of Arc, Box, and clone, and it will win this match without breaking a sweat.

      [1] https://hamy.xyz/blog/2026-01_high-level-rust

      [2] https://llogiq.github.io/2020/05/30/hi.html

    • adwhitJun 2016

      > I've been watching Rust on that Benchmarks Game site for a while — it's been interesting to see it go from worse than Java a year or so ago to competitive with C++

      To be clear, Rust-the-language has not sped up significantly in the past year. It's just that a few dedicated people decided to try to win the benchmarks game strictly for PR purposes [0].

      Chances are, for very algo-heavy (i.e. unrealistic) workloads, there are two ways to write it in Rust - fast and safe or very fast and unsafe. (e.g. one can disable bounds checking and get maybe a 2% speedup).

      All this really serves to show is how artificial the benchmarks are.

      [0] https://llogiq.github.io/2015/10/03/fast.html

    Related

    Rust Blogblog.rust-lang.org533 people

    Announcing Rust 1.0

    Rust Blog
    Company · last shared 2026
    Alexis Beingessnercglab.ca/~abeinges61 people

    Rust, Generics, and Collections

    Alexis Beingessner
    Personal · last shared 2024
    matkladmatklad.github.io237 people

    Architecture.md

    matklad
    Personal · last shared 2026
    fasterthanli.mefasterthanli.me236 people

    A half-hour to learn Rust

    fasterthanli.me
    Personal · last shared 2026
    Manish Goregaokarmanishearth.github.io97 people

    Picking Apart the Crashing iOS String

    Manish Goregaokar
    Personal · last shared 2026
    Kang Seonghoonlifthrasiir.github.io16 people

    Why is a Rust executable large?

    Kang Seonghoon
    Personal · last shared 2023
    Bluish Coderbluishcoder.co.nz77 people

    Using Freenet

    Bluish Coder
    Personal · last shared 2025
    David Lattimoredavidlattimore.github.io18 people

    Wild performance tricks

    David Lattimore
    Personal · last shared 2026