Top all-time · #7215
InsightfulLogic
Personal blog · insightfullogic.comprogrammingsystems
InsightfulLogic is a personal blog at insightfullogic.com about programming and systems. Since 2011, 11 different Hacker News readers have linked it 34 times, most often “Are all Map Functions the same?”. No feed was found, so read it on the site itself.
Too few sampled comments (5) to say how often HN recommends it.?
Why HN links it
Posts on JVM and .NET performance: megamorphic call sites, devirtualization in the JIT, and Java memory-mapped buffer APIs. HN commenters cite them as background on these topics.
Summarised by Claude from a sample of 5 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- /2014/May/12/fast-and-megamorphic-what-influences-method-invoca/3 people · 4 mentions · first linked 2015-10-07
- Are all Map Functions the same?2 people · 2 mentions · first linked 2012-12-09
- How a concurrent Garbage Collector works2 people · 2 mentions · first linked 2013-05-07
What Hacker News says?
While I'm inclined to suspect that non-virtual by default is better from a design perspective‡, don't assume the point about performance is overwhelming. HotSpot has done devirtualization for a long time. You can detect not only when a method is never overridden, but also when it's never overridden at a particular call site. A virtual method that's never overridden can sometimes have no extra overhead, while a virtu…
Comment linking /2014/May/12/fast-and-megamorphic-what-influences-method-invoca/
on “I was wrong, reflecting on the .NET design choices”Submitted Reasons to use Guava as a story · 66 points
HN discussionHaskell and Rust both require monomorphization, right? That's one thing the JVM doesn't require. You do pay a performance penalty for megamorphic code ( http://insightfullogic.com/2014/May/12/fast-and-megamorphic-... ) but it's still a difference in what's allowed. I also don't understand what you're saying with regard to V8. Can the optimizing AOT compiler actually do enough optimizations on a language as dynamic a…
Comment linking /2014/May/12/fast-and-megamorphic-what-influences-method-invoca/
on “Jitterdämmerung”Submitted Date and Time in Java 8: Timezones as a story · 38 points
HN discussionStatic typing in Java does not give enough information to optimise because of polymorphism. The JIT can observe runtime behaviour and inline method calls at monomorphic sites. http://insightfullogic.com/2014/May/12/fast-and-megamorphic-... Worth noting also that Azul's Zing ReadyNow technology for AOT (and indeed their no-pause C4 collector) address some of the specific gripes raised here around the JVM...
Comment linking /2014/May/12/fast-and-megamorphic-what-influences-method-invoca/
on “Jitterdämmerung”Submitted Multiple Inheritance and Traits in Java as a story · 20 points
HN discussionOn the Java side of things, devirtualization in the JVM's JIT compiler is discussed in articles like: http://insightfullogic.com/2014/May/12/fast-and-megamorphic-... ; https://shipilev.net/blog/2015/black-magic-method-dispatch/
Comment linking /2014/May/12/fast-and-megamorphic-what-influences-method-invoca/
on “Devirtualization in LLVM and Clang”Submitted Guava's EventBus - Simple Publisher/Subscriber as a story · 8 points
HN discussionMy previous blog post [0] covered the simple case of 'Local' dates. If you're able to simplify your application code to avoid the use of timezones then that's a good thing to do, but boycott et al. isn't going to work. It might be possible if you're, say, writing a service internal to your company and all your servers are on UTC - its just a case of choosing something applicable to your domain. [0] http://insightful…
Comment linking /blog/2012/dec/14/date-and-time-java-8-1/
on “Date and Time in Java 8: Timezones”Submitted Java Debuggers and Timeouts as a story · 5 points
HN discussionIf you find ByteBuffer's API awkward/insufficient, you might want to consider one of the replacements: * Netty's: https://netty.io/4.0/api/io/netty/buffer/ByteBuf.html as used by Netty * Agrona's, as used by Aeron and SBE: http://insightfullogic.com/2015/Apr/18/agronas-threadsafe-of...
Comment linking /2015/Apr/18/agronas-threadsafe-offheap-buffers/
on “Is Memory Mapped File This Fast in Java?”Submitted Testing Java 8 in 3 Easy Steps as a story · 3 points
HN discussionSubmitted Garbage collection in Java as a story · 3 points
HN discussionSubmitted Lambdas: Coming to a Java 8 near you. as a story · 3 points
HN discussionSubmitted Understand and measure your CPU-cache as a story · 2 points
HN discussionSubmitted Java's Garbage First Garbage Collector as a story · 2 points
HN discussionSubmitted Garbage Collection in Java (part 3) as a story · 2 points
HN discussionSubmitted How a concurrent Garbage Collector works as a story · 2 points
HN discussionSubmitted How Parallel Garbage Collection works as a story · 2 points
HN discussionSubmitted Slab: guaranteed heap alignment on the JVM as a story · 2 points
HN discussionSubmitted Are all Map Functions the same? as a story · 2 points
HN discussionSubmitted Are all Map Functions the same? as a story · 2 points
HN discussionSubmitted Threadsafe Offheap Buffers as a story · 1 points
HN discussionSubmitted Efficient open source event counters from the Agrona library as a story · 1 points
HN discussionSubmitted An open source JVM Sampling Profiler as a story · 1 points
HN discussionSubmitted Too Fast, Too Megamorphic: what influences method call performance in Java? as a story · 1 points
HN discussionSubmitted How to grow the speakers in your technical community as a story · 1 points
HN discussionSubmitted Performance tests for slow networks with tc as a story · 1 points
HN discussionSubmitted Garbage Collection in Java - G1: Garbage First as a story · 1 points
HN discussionSubmitted Overview of Garbage Collection in Java as a story · 1 points
HN discussion