kosherhurricane 2 years ago

> it’s surprising how few Java developers with 10+ years of experience have a deep knowledge of the underlying hardware.

What fraction of Java software needs the lowest possible core-to-core latency? Around 0%?

But hey, he's a cool, specialized programmer who knows these things, and need to share this important knowledge with someone. And yet, the article never answers the question it asks. What impact did pinning cores have on their application? 5% improvement? 20% improvement?

I've made performance improvements by manually removing all bounds checks in a hot path. It made about 3% improvement to the total performance. Was it worth it? For my application, sure. Do I think other engineers are dumb because they don't do rigorous bounds check elimination? No.

  • Sakos 2 years ago

    I feel you're being quite uncharitable. I don't think the author means to say everybody needs to know these things. He says it in the context of senior engineers applying for a job where he works, which is in financial trading. His point is that these candidates should know this, and hey, for anybody interested, this is valuable knowledge that may or may not be relevant to you.

    > We usually ask candidates to demonstrate a good knowledge of core Java, then we cover slightly more advanced concepts, such as the use of volatile memory, memory barriers and fences. While it is important to have a high-level understanding of these concepts when writing concurrent code, it’s surprising how few Java developers with 10+ years of experience have a deep knowledge of the underlying hardware. An initial goal of Java was to “write once, run anywhere”, but does that mean we should not be sympathetic to the hardware?

  • metadat 2 years ago

    Agreed, "why does it matter?"

    For now, it absolutely doesn't, and for 99.99999999999999% of humanity, it never will.

  • melony 2 years ago

    Did you actually read the article? The blog post is by an algorithmic trading company. Finance makes up a rather large chunk of Java usage in industry. Not all applications are CRUD apps.

    • kosherhurricane 2 years ago

      I did.

      > Finance makes up a rather large chunk of Java usage in industry.

      I don’t doubt a lot of finance uses Java. But to claim that finance makes up a large chunk of Java usage is absurd. Think of all the android apps out there. And even inside finance, what percentage of the code is high speed trading?

      > Not all applications are CRUD apps.

      Agreed. But what fraction of Java code out there do you think is high performance code that needs core affinity? If you say anything below 0.5%, that rounds to 0%.

    • karmakaze 2 years ago

      Title should have been When rather than Why.

      • kosherhurricane 2 years ago

        The article doesn’t even say when one needs core affinity.