Running X++ as IL has some huge performance benefits, but you have to be careful. Here is a write up of the changes we went through for the code compare tool in AX 2012 to increase its performance and reduce some IL side effects.
In Dynamics AX 2012 the compare tool has been through two significant changes to improve performance.
The first change was a re-implementation of the algorithm. In AX 2009 (and previous) the algorithm was “home-grown” – in AX 2012 it was changed to use the Longest Common Subsequence algorithm. For texts that were nearly identical this yielded little improvements – but for vastly different texts it became significant. To measure the performance improvement a “typical” text was defined as a text where 10% of all lines contained random text. The new algorithm (orange) could compare two typical texts each with 1100 lines in 10 seconds – the original algorithm (red) could “only” handle 650 lines in 10 seconds.
As the algorithm is pure CPU extensive– there is no database involvement- it could benefit significantly by running the code as IL. Switching over to run X++ code as IL is quiet simple in X++. By running the code as IL we can compare 4300 lines in 10 seconds. (green). To change the compare code to run as IL, here is what we had to do:
XppILExecutePermission perm =
By changing to a better algorithm and running the compare algorithm as IL, we have increased the size of texts that can be compared in 10 seconds from 650 lines to 3400 lines – a factor of 5. For small texts the difference is insignificant – the larger the text, the larger the gain. However; if the user disables IL ,then gain from running IL is gone, and a penalty is paid for the IL specific optimizations implemented. In this case it was an optimization to reduce memory consumption.
If you are in the neighborhood and can spare a morning, you are most welcome at Microsoft Developer Center Copenhagen for a TechTalk by Brian Rasmussen. It is free – but remember to sign up.
The goal of the Roslyn project is not only to deliver the next generation C# and Visual Basic compilers and language services. Roslyn also provides a rich set of APIs for interacting with the entire compiler pipeline and data model. The Roslyn APIs make parsing source code, querying semantic information, analyzing data and control flows as well as scripting easy. In this talk we look at several examples of how to use the APIs to enhance tools and applications.
About Brian Rasmussen
Brian is a Senior SDET at Microsoft working on the next generation C# and Visual Basic language services in Roslyn. Before joining Microsoft Brian was a Microsoft MVP for Visual C# for four years. Brian is blogging on the C# FAQ (http://blogs.msdn.com/b/csharpfaq/) and can be found on Twitter (@kodehoved).
When: May 24, 2012 at 09.30 – 10.30
Where: Microsoft Development Center Copenhagen, Frydenlunds Alle 6, 2950 Vedbaek
Sign up: Here
Filing my report took only a few minutes, and the experience was familiar to me. It didn’t require any training and the tool was even integrated with AMEX, so I could easily link my expense to the charge on my credit card. The UI was familiar as as I’m used to working with Share Point, ribbons and, of course, Dynamics AX. The experience offers a vast improvement over the old system, which was Excel based, with ever changing templates, required stapling receipts on to paper and printing confirmations. I now feel a little prouder in my daily work.
To learn more about the Microsoft Dynamics AX 2012 expense management system internally at Microsoft go here.
In case you want to know, I was expensing the purchase of Pavel Hruby’s book: Model-Drive Design Using Business Patterns.
Convergence 2012 is over. I didn’t attend. What did I miss? Probably a whole lot – based on all the traffic on Twitter and my past Convergence experiences. Luckily Microsoft has created a Virtual Convergence where attendees can see all recorded sessions on-demand. But even better: Virtual Conference is also for me – even though I didn’t attend the conference. I can stream the keynotes and the general sessions – I’ve already enjoyed Kirill Tatarinov’s keynote and Sri Srinivasan’s general session on Microsoft Dynamics AX 2012. Next time I’ll be sure to go.
Register for the Microsoft Dynamics AX 2012 for Retail Virtual Launch Event on February 1st, 2012 at 9:00 a.m. Pacific Time (US)
Microsoft leaders, customers, and retail industry experts will talk about what it means to be a Dynamic Retailer in today’s retail environment while providing a first-look at the powerful retail capabilities being introduced as part of Microsoft Dynamics AX 2012.
A new white paper is available. The white paper includes many performance optimizations we’ve found through customer upgrades. It should benefit anyone who’s considering an upgrade from previous versions of AX to AX 2012.
You can download the white paper here: http://go.microsoft.com/fwlink/?LinkId=238709.
The pile of AX books will grow this year. I’m pleased to announce that work on the 3rd Inside book from Microsoft Press has commenced. Not surprisingly the book’s title will be “Inside Microsoft Dynamics AX 2012”. The book should hit the shelves late this year.
I’m going to spend quite some time in Microsoft Word over the next few months.
THIS POST IS PROVIDED AS-IS AND CONFERS NO RIGHTS.
The year 2011 has been an amazing year for AX.
Most remarkably, of course, has been the launch of Microsoft Dynamics AX 2012. Being an engineer, on a team working on a product for several years before finally making it public available, is in all honesty a mixed experience. On one hand you are the “proud parent“ boasting of everything that was accomplished – on the other hand you know it marks the end of a long journey with a great team. The only comforts are how well “your little one” has been received, and that you know a new journey is awaiting just around the corner.
In 2011 we’ve also been treated to no less than two Technical Conferences on AX. After what feels like a decade - they are finally back. For me personally, I’d been missing these opportunities to talk to peer X++ developers and I fully enjoyed every second I spent in Redmond in January and in Nice in November. I also must say “Thank you” for the overwhelming feedback I’ve received from my presentations. It is much appreciated.
Let us keep the momentum next year - I believe AX is ready for 2012!
Enjoy the holidays, and happy new year!
I think I’m going to have a game of Scrabble with my kids without thinking too much about work
Models, XPOs, Model store files, signing, uninstall, metadata, compilation, IL, move between environments – are you on top of them all?
If not, here is a very useful whitepaper: http://www.microsoft.com/download/en/details.aspx?id=26571