Work in progress: 82,651 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #2853

P

Psychosomatic, Lobotomy, Saw

Personal blog · psy-lob-saw.blogspot.comprogrammingsystems

Psychosomatic, Lobotomy, Saw is a personal blog at psy-lob-saw.blogspot.com about programming and systems. Since 2013, 26 different Hacker News readers have linked it 55 times, most often “What a difference a JVM makes?”. The last post was in 2018, but the archive is still widely read.

Visit the blog
55mentions?
26HN people?
2013–2026first – last linked?
Links on Hacker News per year · peak 12 in 2015

Blog on Java, Performance, Concurrency, NIO, Unsafe, Low latency, Programming, Software, Philosophy

Most-linked posts?

  1. What a difference a JVM makes?
    4 people · 4 mentions · first linked 2018-01-05
  2. The Escape of ArrayList.iterator()
    4 people · 4 mentions · first linked 2015-03-07
  3. Most Sampling Java Profilers Are Terrible
    3 people · 4 mentions · first linked 2016-02-24
  4. The Mythical Modulo Mask (2014)
    2 people · 3 mentions · first linked 2014-11-03
  5. JMH Perfasm Explained: Looking at False Sharing on Conditional Inlining
    2 people · 3 mentions · first linked 2015-07-27
  6. Expanding the Queue Interface: Relaxed Queue Access
    2 people · 3 mentions · first linked 2015-10-20
  7. Safepoints: Meaning, Side Effects and Overheads (2015)
    2 people · 2 mentions · first linked 2016-06-13
  8. How to Examine and Verify your Java Object Memory Layout
    2 people · 2 mentions · first linked 2013-05-21
  9. How Inlined Code Makes for Confusing Profiles
    2 people · 2 mentions · first linked 2018-07-11
  10. /
    2 people · 2 mentions · first linked 2014-03-30

What Hacker News says?

  1. Here are a bunch of blogs from my RSS reader that I think are worth reading. Some of them haven't updated in a while, but the archives may be worth a look anyway. * Blogs with a math focus: http://blog.sigfpe.com http://bit-player.org http://mathr.co.uk/blog/ https://www.johndcook.com/blog/ * Blogs with a programming languages focus: https://existentialtype.wordpress.com https://bluishcoder.co.nz http://blog.ezyang.…

    Comment linking /

    on “Ask HN: What programming blogs do you follow?”
  2. Submitted 135M messages a second between processes in Java (2013) as a story · 262 points

    HN discussion
  3. > How do you avoid too many allocations to happen in Java? Most of the time you don't need to, because GCs are that good, and escape analysis can avoid heap allocation automatically[1]. You won't get C++ latency, but you'll do better than Go. If you really need to avoid allocations for some reason, you can go off-heap for C++ performance (Java HFT applications do that for the most performance-critical things; it req…

    Comment linking /2014/12/the-escape-of-arraylistiterator.html

    on “The ups of downs of porting 50k lines of C++ to Go”
  4. Submitted Most Sampling Java Profilers Are Terrible as a story · 54 points

    HN discussion
  5. Are you familiar with JMH's perfasm? http://psy-lob-saw.blogspot.com/2015/07/jmh-perfasm.html And for profiling apps on production, I've yet to encounter a more thorough, low-overhead profiler than Java Flight Recorder.

    Comment linking /2015/07/jmh-perfasm.html

    on “Go GC: Prioritizing low latency and simplicity”
  6. Submitted Notes on False Sharing as a story · 41 points

    HN discussion
  7. The OpenJDK JVM (aka Hotspot) addresses both issues: control [1] and monitoring [2] (there are built-in compilation and deoptimization events emitted to the event stream). You can also compile methods in advance [3], and inspect the generated machine code when benchmarking [4]. You can even compile an entire application ahead-of-time [5] to produce a native binary. [1]: https://docs.oracle.com/en/java/javase/14/vm/c…

    Comment linking /2015/07/jmh-perfasm.html

    on “JITs are un-ergonomic”
  8. Submitted Notes On Concurrent Ring Buffer Queue Mechanics as a story · 41 points

    HN discussion
  9. Vanilla Java is a great resource. The work that Chronicle does got me into low latency Java as well (not doing java now though). Some other great resources I used: * http://psy-lob-saw.blogspot.com/ - Not updated since 2018, but still great stuff in there * https://richardstartin.github.io/ - A few posts per year. Richard does a lot of interesting things.

    Comment linking /

    on “JVM Anatomy Quark #10: String.intern (2019)”
  10. Submitted How Inlined Code Makes for Confusing Profiles as a story · 27 points

    HN discussion
  11. Can confirm -- writing data to memory is incredibly fast. It's faster to use a lock-free queue and use CAS to insert data though: http://psy-lob-saw.blogspot.com/2016/12/linked-array-queues-... I've benchmarked code myself, and the flamegraphs will barely show the SpscArrayQueue in the profile.

    Comment linking /2016/12/linked-array-queues-part-2-spsc.html

    on “Good Logging”
  12. Submitted The Escape of ArrayList.iterator() as a story · 20 points

    HN discussion
  13. This is already a standard piece of how JITs work today. See the discussion of Java intrinsics and Array.fill() here [0]. > An intrinsic function is applied as a method substitution [...] and the compiler will replace it's apparent source-level implementation with a pre-cooked implementation. In some cases intrinsics are sort of compilation cheats [...] > The intrinsics are all set up in vmSymbols.hpp and if you loo…

    Comment linking /2015/04/on-arraysfill-intrinsics-superword-and.html

    on “Are “jets” a good idea? (2017)”
  14. Submitted JMH Perfasm Explained: Looking at False Sharing on Conditional Inlining as a story · 13 points

    HN discussion
  15. Just as an aside, sometimes slicing up your arrays-of-structs into structs-of-arrays brings big locality improvements. Anyway, you can usefully control some aspects of how Java lays out your data, including primitive fields: http://psy-lob-saw.blogspot.com/2013/05/know-thy-java-object...

    Comment linking /2013/05/know-thy-java-object-memory-layout.html

    on “Data-Oriented Hash Table”
  16. Submitted The Mythical Modulo Mask (2014) as a story · 12 points

    HN discussion
  17. I just read this: http://psy-lob-saw.blogspot.com/2015/12/safepoints.html Wow, I had no idea how bad sampling profilers are on JVM. And apparently JVM profiling in general. So collecting a stack trace sample requires a thread being suspended at a safepoint. And a global safepoint requires suspending all threads ? Sampler that needs to do that will surely not only miss real CPU time consumer but also significantly al…

    Comment linking /2015/12/safepoints.html

    on “Java StringBuffer and StringBuilder performance”
  18. Submitted On Arrays.fill, Intrinsics, SuperWord and SIMD Instructions as a story · 11 points

    HN discussion
  19. I know that profiling using VisualVM (or most other profilers) can substantially change the garbage collection behavior of an application ( http://psy-lob-saw.blogspot.com/2014/12/the-escape-of-arrayl... ). I don't know if using VisualVM in the way this article does has the same effect--sounds like the author is not doing any actual profiling, so it may not be an issue. Additionally, since this is a synthetic benchm…

    Comment linking /2014/12/the-escape-of-arraylistiterator.html

    on “Comparing Java GC Collectors”
  20. Submitted Wait for It: Counted/Uncounted Loops, Safepoints and OSR Compilation as a story · 8 points

    HN discussion
  21. For all those interested in this subject, I'd like to recommend Nitsan Wakart's blog, http://psy-lob-saw.blogspot.com/ , which is dedicated to mechanical sympathy relating to concurrency and the memory system.

    Comment linking /

    on “The Cache and Multithreading”
  22. Submitted Expanding the Queue Interface: Relaxed Queue Access as a story · 7 points

    HN discussion
  23. Ah shoot, you're right this wouldn't be what I'm thinking. I was thinking of "GC Nepotism" [1]. That's the case where an object in old gen pointing to an object in new gen will automatically promote that new gen object into old gen. This can be particularly problematic with graph structures. [1] https://psy-lob-saw.blogspot.com/2016/03/gc-nepotism-and-lin...

    Comment linking /2016/03/gc-nepotism-and-linked-queues.html

    on “Tune Code Before Your Garbage Collector”
  24. Submitted HdrHistogram: A better latency capture method as a story · 7 points

    HN discussion
  25. Submitted The JVM Write Barrier – Card Marking as a story · 7 points

    HN discussion
  26. Submitted Degrees of Lock/Wait Freedom as a story · 5 points

    HN discussion
  27. Submitted The Mythical Modulo Mask as a story · 5 points

    HN discussion
  28. Submitted What a difference a JVM makes? as a story · 4 points

    HN discussion
  29. Submitted GC 'Nepotism' and Linked Queues as a story · 4 points

    HN discussion
  30. Submitted Notes on Concurrent Ring Buffer Queue Mechanics as a story · 4 points

    HN discussion

Search all of HN for psy-lob-saw.blogspot.com

Linked by the same people?