152
you are viewing a single comment's thread
view the rest of the comments
[-] Vorpal@programming.dev 8 points 4 months ago

On paper they are efficient. In practise, all pointer based data structures (linked lists, binary trees, etc) are slow on modern hardware. And this effect is more important than the complexity in practise for most practical high performance code.

You are far better off with linear access where possible (e.g. vectors, open addressing hash maps) or if you must have a tree, make the fan-out factor as large as possible (e.g. btrees rather than binary trees).

Now, I don't know if Haskell etc affords you such control, I mainly code in Rust (and C++ in the past).

Also see this old thread from 2016 on hacker news about this very topic: https://news.ycombinator.com/item?id=13263275

[-] coherent_domain@infosec.pub 4 points 4 months ago* (last edited 4 months ago)

I don't know if Haskell etc affords you such control

You can have immutable arrary with vectors, but to mutate them you will need to wrap your action in a Monad. It even supports unboxed values.

https://hackage.haskell.org/package/vector

But I agree boxed default actually causes a lot of performance overhead in many high-level languages.

this post was submitted on 01 Jan 2026
152 points (100.0% liked)

Programming

27052 readers
157 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 3 years ago
MODERATORS