Jason Zander is Corporate Vice President of Development for the Windows Azure team at Microsoft.
Learn more about Jason.
More videos »
This morning I met with a group of industry influencers who are more exports in the JVM community. I brought with me a few folks from the CLR team, including Jim Miller, Brad Abrams, and Jim Hugunin.
Rather than do a lot of presenting (I had only 9 slides including the title page), we spent most of the time fielding some really good questions. I wanted to jot down a few additional pointes here:
There were lot's of questions on how our collector works. This article by Rico is a great resource for full details. A few notes:
Memory Overhead and Sharing
I walked through how an Assembly is found on the machine, how the CLR is bootstrapped, and how we use the GAC for versioning work. A few intrestesting notes on this:
Memory Model and Volitility
A question came up about how we handle aggressive memory scheduling on various CPU's. The CLR does support the concept of volitility and read order semantics. This is another example of a complicated trade off based on developer segment. Lots of people would be very happy to not ever have to understand the concepts involved. But other segments are going to be looking for every ounce of performance and want access to those features. Our high level principle is to make the system easy to use and program against by default, but not to totally hide things either.
Versioning of Assemblies
Versioning is a very tricky subject. A few notes we talked about:
We had several questions about our philosphy on dynamic languages. I think I'll actually write a separate blog post on this one because it is such an interesting subject. A few quick notes for now:
In closing, I want to thank the attendees for their great questions and feedback!