July 24th, 2010
A Short and Sweet (and Deep) Brain Dump -
About Unsafe and CompareAndSwap (and NonBlockingHashMap).
A reader asked me: where is the volatile-like orderings guaranteed in NBHM?
Jargon:
CAS - Compare-And-Swap instruction (or on IBM Power chips: Load-Linked / Store-Conditional). The unit of Atomic Update on all modern CPUs, required for any sort of multi-cpu programming.
Unsafe - Java-level access to raw memory. In old-school spea
July 16th, 2010
Gadzooks, time flies! Been too long since I blogged... no time for something deep so here's another quicky brain dump.Azul Systems has been running HotSpot with a Tiered Compilation system since 2007 in our production sites, and I thought I'd blog a little about how that works.Jargon terms first:
June 9th, 2010
2010 ISMM & PLDI in Toronto, CASkip to the techy parts...
As mentioned in my last blog, I am flying into Toronto from Lisbon, Portugal. There is no direct flight, so I'm taking US Airways and connecting through Philadelphia. The flight over is fairly easy and in daylight the whole way so no chance I get any sleep - no problem, the quickest way for me to kick jet-lag is to stay up late anyways (not that I get over jet-lag very rapidly in any case).
We arrive on time,
June 4th, 2010
I got an all-expense-paid vacation to Portugal, in exchange for giving a few talks and chatting with Joao Cachopo's group about STMs. His group has the only commercially successful use of an STM that I know about - the Fenix system. The Instituto Superior Técnico (biggest engineering faculty of Portugal) runs on it, including all student courses, grading, teachers, scheduling, etc.
May 1st, 2010
I had a set of long email exchanges with Doug Lea, reprinted here (with permission). Lightly edited for clarity and the rare NDA-only material. I resorted several of the interleaved conversations to make them flow better - but the original emails are highly interwoven.
April 29th, 2010
Ok, I got a Real Blog cooking up but I want to see the new system work so people can comment. The RSS feed should work. Comments should work. Please can I get a few comments from readers so I know the blog is functional? When I see it working I'll can this blog post and put up some Real Stuff. Thanks, Cliff
April 21st, 2010
More news from the Internet connected-tube-thingy: Cool - From: cmck.... I'm going to reference the blog on the landing page tomorrow. I know the readership will be more than pleased that we successfully poked the bear and got some insight from Cliff. Also - TheServerSide.com managed to raise the ire of Azul Systems' Cliff Click, Jr., ...
April 19th, 2010
Welcome to my new Blog Home! And for those of you who made it, this quick tidbit. Everybody in the JVM business optimizes for long arraycopys/memcpy. You can get peak bandwidth on machines with a decently long memcpy. It's easy enough to do and arraycopy and memcpy are called a *lot*. But what about short arraycopies? How often do we call System.arraycopy with small numbers?
April 17th, 2010
A collection of recent questions & answers... These first two comment/questions comes from this TSS thread:
April 8th, 2010
Inline Caches solve a problem particular to Java - extremely frequent virtual calls. C++ has virtual calls as well, but you have to ask for them (using the virtual keyword). By default C++ calls are static. The situation is reversed in Java: virtual calls are the default and you have to ask for static calls (with the final keyword). However, even though most Java calls are declared as virtual, in practice very very few use the full virtual-call mechanism. Instead, nearly all Java calls are as fast