About

I am a software developer in Seattle, building a new AI software company.

Ads

April 2009

Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

Categories

Ads


« Transparency and Microsoft | Main | .NET Regular Expression Quiz »

March 03, 2005

Whidbey Beta 2 Coming Up

I came across a blog comment by a Microsoft employee, Hannes Preishuber, that the Whidbey beta 2 should be coming up in the next few days. This is a few weeks earlier than the the March 31 delivery date announced by Somasegar, corporate VP of Microsoft’s developer divisions, but still in line with statements made five weeks ago that the next Avalon and Indigo CTP, both dependent on Beta 2, will arrive in about “six weeks.” It’s about time.

There will be some changes from Beta 1.

  • Beta 2 utilizes a “go live” license for both ASP.NET and WinForms. The beta runtime will be supported by Microsoft.
  • The target size of the redistributable is rumored to be around 16 MB for Beta 2 versus 24 MB for Beta 1 and 23 MB for version 1.1.
  • The .NET moniker is steadily going away. VB.NET and JScript.NET has already been changed to Visual Basic and JScript. Will we start hearing about WinFX, especially with Avalon and Indigo on the way?
  • Editor & Continue is supported under C#. I was very impressed with quality of the implementation with my brief exposure to it.
  • There are more modern icons included in the new builds.
  • Many features have been dropped from the framework such as in areas of XML and WinForms printing supports.
  • Several classes and interfaces have been renamed or changed. IEnumerable<T> now, for example, inherits from IEnumerable.
  • Language completeness. C++/CLI should actually be implemented now. The nullable types syntax extension in C# should be fully baked in by now.

One thing that I plan on doing is some performance testing. Performance testing should be more meaningful with Beta 2, since it is a true beta—no new features, no interface changes, just a trial run for the actual release.

The Whidbey JIT compiler produces much more optimized code; applications under the first beta already perform faster than the current versions of .NET. (I think that the developers of NET 1.x were more concerned with correctness and shipping than with performance.)

Unfortunately, some of my prior .NET assumptions are going to break down, and much of knowledge of CLR internals, from Richter’s Applied Microsoft .NET Framework Programming and Don Box’s Essential .NET, Volume I: The Common Language Runtime, will probably be out of date. These are some of the areas that I plan on looking at:

  • Reflection. According to Chris Brumme, Whidbey reflection was rewritten and optimized for performance.  My examination of the Rotor source shows that Everett reflection wasn’t just unoptimized, but somewhat inefficient. Invoking a method through a MethodInfo object used to take about 400 times longer than a direct invocation—this is even after parsing the name and locating the method data. While developing in Beta 1, I did encounter an encouraging new internal method, InvokeMethodFast, in the callstack during a reflection call, so I am hopeful that we could actually see an order of magnitude performance improvement in this area.
  • Exceptions. Exceptions are orders of magnitude slower than reflection; I recall doing some benchmark tests on exceptions and initially believing that the poor performance numbers were due to programming errors. I would love to see a major improvement in exception-handling performance, but I doubt we will see any gains here. The CLR guys are stubborn in their belief that exceptions are exceptional.
  • Interface and Delegate Performance. Interfaces and delegates are reportedly faster in Whidbey. Delegate performance improvements are probably obtained by simply inlining the call—before, a delegate invocation used to require the overhead of two to three function calls. Some Microsoft bloggers indicated that the performance of the two are similar, which may be due to a common implementation.
  • NGEN performance. NGEN applications use to perform more slowly than Jitted applications, because the JIT compiler had more information about the dynamic runtime environment and could optimize away indirections. For example, NGEN’ed assemblies would perform vtable indirections to call nonvirtual methods in other assemblies. Though NGEN has more time to statically compile applications,  it didn’t actually offer richer optimizations beyond the JIT. The new Whidbey version of NGEN supports hardbinding of multiple assemblies within an application.
  • Others. I think we will see much more aggressive inlining of methods and more extensive code optimizations. I am guessing that the JIT compiler will be smarter about inlining monomorphic and bimorphic virtual methods the way Java is now. I am also hopeful that the compiler now support the inlining of custom value types.

UPDATE: Apparently, a not quite "Beta 2" February CTP is making the rounds at the MSDN website, so we could still possibly see the beta at the end of the month.

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d8345242f069e200d83458764c69e2

Listed below are links to weblogs that reference Whidbey Beta 2 Coming Up:

» Anticipation from Bruce Johnson's SOA(P) Box
[Read More]

» .NET Framework 2.0 ser from Jose Gonzalvo
[Read More]

» .NET Framework 2.0 ser from Jose Gonzalvo
[Read More]

» re: Priorities from Cyrus' Blather
[Read More]

» Whidbey Beta 2 Production Ready from p u b l i c v o i d . d k
[Read More]

» Visual Studio 2005 (Code-Named from Jason N. Gaylord's Blog
Beta 2 of Visual Studio 2005 will most likely be released on March 31, 2005. [Read More]

» Visual Studio 2005 (Code-Named from Jason N. Gaylord's Blog
Beta 2 of Visual Studio 2005 will most likely be released on March 31, 2005. [Read More]

» .NET Undocumented: Whidbey Beta 2 Coming Up from CodeBetter.Com Link Blog
[Read More]

» Whidbey Beta 2 Coming Up from 中の技術日誌ブログ
Whidbey Beta 2 Coming Up [Read More]

» Whidbey Beta 2 from VBASPCoder.com(日本語版)
[Read More]

Comments

I heard from Microsoft that the upcoming CTP of WinFX will not be running on Beta2 Whidbey because they had been testing and running on Beta1. He mentioned that summer beta will be upgraded to beta2. Very frustrating if true.

I remember reading that Microsoft now believe their assumptions about exceptional exceptions is flawed.

I also remember reading that monomorphic inlining of virtual methods will not be in whidbey.

After chatting briefly with Scott Guthrie, Beta 2 is still slated for the end of this March. Hope the info is useful.

"I am also hopeful that the compiler now support the inlining of custom value types."

Rudiger Khan made a suggestion on the MSDN feedback center that methods with value types as parameters ought to be inlined. MS responded and said this feature will not make it into Whidbey. See

http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=fb7b3c93-a9e9-418b-85b3-b67a195c7e1a

Hi Mr Bill Gates.
My name is Camilla, I live in sweden whit my mum and my brother who is four years. We used to live whit my stepfather. But unhappy, he died in november 2004. And the pain was big. Now, for two weeks ago. Our kitchen started in fire. Our dog had put on the stove and then the fire tooke in the roof and other things,and the rest of the apartment was smoke damaged. Of corse whe already had a hard time. But the thing is that my stepfather had the homeinsurance on him, but it dissapeard when he died. So now whe standing here whit a selfrisk on 80 000 SEK. And no money to pay it whit. I now that you get many questions about wanted money. But I don´t know anyone else to ask. And I don´t even know If you is going to read this. But one thing I know. Me and my family is having a hard time, and you can help us to the good time, so please. GIve me an answer. And i sure hope that you understand my bad english.
My adress is

Camilla Sivertsson
Larsrunebergsgatan 60
434 42 Kungsbacka
Sweden

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment