HackerTubewatch
Surprise me
Frame from CppCon 2016: Chandler Carruth “High Performance Code 201: Hybrid Data Structures" Plays via YouTube's privacy-enhanced embed

CppCon 2016: Chandler Carruth “High Performance Code 201: Hybrid Data Structures"

48 videos recommended on HN
YouTube
1 HN user recommended this talk1 month2016–2021 score 1
Years with an HN recommendation, 2007–2026

Cited as the source for criticism of std::deque and move-constructor pitfalls, and as motivation to write custom data structures.

Chandler Carruth's CppCon 2016 talk on designing hybrid data structures for performance. He covers cache locality, working-set size and allocation overhead, and why standard C++ containers fall short.

“I suggest watching this talk” (HN, 2021)

1 recommendations · 2 citations · Talks · advanced

3 Hacker News comments

From the HN archive; up to 20 kept per video, favoring different commenters. Recommendations first.

@typon Aug 2021 Recommends
on HN thread EASTL: An Alternative C++ Standard Library
I suggest watching this talk: [this video] Or pretty much any other by Chandler to understand why the STL sucks and why you should write better datastructures for your own use cases.
Explains why STL falls short and to write own datastructures

Citations, criticism and jokes

@chubot Nov 2016 Cites it
on HN thread Help me sort out the meaning of “{}” as a constructor argument
Read more
The parent was asking the goldilocks question -- was there ever a point where C++ was not too complex like modern C++, e.g. this {} issue, but had enough features (contrast with C, which doesn't have enough features for many applications). I don't think there was such a moment. Apparently move constructors were a de-optimization in the case of std::vector. As far as I remember, it's related to iterator invalidation and move semantics making small-size optimization impossible (e.g. inlining small vectors into the object itself rather than having another pointer and heap allocation). I'm pretty sure it's in this video: [this video] Although it's debatable how big a deal this is, it's a good example of the point. People like "C with classes" because they can read the source and kind of figure out what code is generated. They can reason about locality. Although I don't consider myself an expert C++ programmer, if I can't reason about the consequences of move constructors on std::vector, which is a fundamental and relatively simple data structure, then the language is already getting into "surprising" territory. I would have never figured out that de-optimization unless I heard it in a video. On a related note, I wish that return value optimization had better syntax -- that would make move semantics unnecessary in a lot of cases. On the other hand, reasoning about the generated code is already a lost cause because assembly code is so complicated now. We now have to live in a world wher
Source for move constructors de-optimizing std::vector
@04091948 Apr 2020 Cites it
on HN thread Comparison of C++17, Go, and Java for a next-generation sequencing tool
in CppCon 2016: Chandler Carruth “High Performance Code 201: Hybrid Data Structures"[1] he says: "but the standard deque data type is really quite bad. I wouldn't recommend anyone use it for anything. if you look at the implementation constraints, the constraints placed upon its iterators, and its invalidation constraints, it's painted into a very unpleasant corner and it has very few opportunities to be an efficient data structure." [1] [this video]
Chandler criticizes std::deque

Video list and Hacker News comment labels from HackerTube (prompted by @karpathy), released under ODC-By 1.0, built on the open-index/hacker-news archive. Hacker News data is provided by Y Combinator; comments remain the work of their authors. Video titles, channel names and thumbnails belong to their creators and are shown via YouTube. HackerTube Watch is an unofficial edition. Data export of 2026-10-31.

Keyboard shortcuts

/
Search
j k
Next / previous video
r
Surprise me
l
Like (video page)
w
Watch later (video page)
?
This help
Esc
Close