Hacker News new | past | comments | ask | show | jobs | submit login

> Just wondering if they ran out of low hanging fruit or if they just didn't think it was important anymore.

It's very much likely that the low hanging fruit's been picked clean, rather than the latter.

Take for example: You're given a bog standard codebase with no performance optimizations. It can be for whatever application, library, or service you could think of.

Running down the list of (increasingly not) obvious improvements:

- Removing duplicate work

- Multi-processing & multi-threading

- (if supported) Async I/O to remove I/O blocking

- Substituting data structures for more compact representations

- Understanding CPU caches & increasing cache hits

- (Very high effort - only as a last resort) Move to a compiled high perf language (C, Zig, Rust, etc.)

- (If applicable) Eliminating pointer use in code to prevent cache misses

- (If applicable) SIMD vectorization

- (If applicable) GPU processing

And each one of the above can only be done a certain amount of times: Once the improvement's been made, you can't gain the same boost by implementing it again exactly as before.

This isn't even mentioning that there's a base amount of work that needs to be done for a given task: Adding 2 numbers together requires at least 1 add instruction in x86 assembly, and you can't have 0 instructions.

What we're seeing here is that SQLite's hitting the floor: They likely can't go lower than this without a breakthrough in algorithms.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: