• 0 Posts
  • 9 Comments
Joined 2 years ago
cake
Cake day: June 13th, 2023

help-circle
  • These are fun rabbit holes to go down. Everything here is true, of course: Big-O complexity isn’t everything, context always matters, and measurements trump guesses.

    But also, how many times have you encountered a performance problem with a slow O(n) solution that you solved by turning it into a fast O(n²) solution, compared to the other way around? The difference between 721ns and 72.1ns is almost always irrelevant (and is irrelevant if it’s not on a hot path), and in all likelihood, the same can be said at n=500 (even 500x these numbers still doesn’t even reach 0.5ms).

    So unless context tells me that I have a good reason to think otherwise, I’m writing the one that uses a hash-based collection. As the codebase evolves in the future and the same bits of code are used in novel situations, I am much less likely to regret leaving microseconds on the table at small input sizes than to regret leaving milliseconds or seconds on the table at large input sizes.

    As a trained practicioner of “the deeper magics” myself, I feel the need to point out that there’s a reason why we call these types of things “the deeper magics”, and that’s because heuristics like “better Big-O means better performance” generally point you in the right direction when it matters, and the wrong direction when it doesn’t matter.




  • Some questions to challenge your proposal:

    1. What test, specifically, do we implement to tell whether or not someone “know[s] the most basic of facts”?
    2. How do we make sure that this test is kept up-to-date as information changes?
    3. Who administers this test?
    4. When is the test administered?

    No matter how I try to answer these questions in a way that’s consistent with reality, all my ideas dead-end at outcomes that suck and only get worse over time.






  • you cant say it doesnt do exactly what you want.

    As someone (a different guy than whom you’re replying to) who has primarily used Linux-based systems in personal settings for about 15 years or so, I can and will say that.

    For the most part, Linux-based systems tend to do exactly what you tell them to do. Whether or not this is exactly what you want, however, is a slightly different point.