I hope everybody is doing great! I had the opportunity to attend to the MS AX 2012 R3 Tech Conference thanks to TriBridge.
Microsoft has worked hard in improving the X++ compiler for the new release. The new compiler is also available in CU7.
X++ Compiler Performance
In the past releases, the X++ compiler has been the bottleneck of build and installation scenarios across the board. For this, Microsoft has recommended the following tips to improve the compiler performance (CU7 and up only)
- One single machine deployment
- SQL Server
- 16GB of memory available.
- Don’t constrain SQL Server memory consumption.
- Installation of the KB2844240 Hotfix (AX 2012 R2) – Index Optimizations.
- Faster CPUs is a much better option than multiple slow ones.
- Solid state drives, which are typically more resistant to physical shock, run silently, have lower access time, and less latency.
How the Microsoft Dynamics AX compiler works
The following depicts the phases of the X++ compiler in previous versions of Microsoft Dynamics AX.
It is important to note that in earlier versions of Microsoft Dynamics AX the build performance is affected by the metadata moving from the client to the server metadata. In addition, the long compiling times are due to the deserialization of metadata and in memory cache.
The following is the architecture for the current compiler
R3 Compiler Improvements
Microsoft enhanced the compiler by allowing us to use the Build.exe command or the client. However, from an architectural point of view, they removed the client portion of the compiler in the R3 release.
The following is the new architecture improvements
A few key points to underline is that the AOS now contains the logging information, therefore there is no cache in memory. In addition, logs are generated in each AOS. In case of a multi AOS deployment scenario, the AXBuild.exe process automatically consolidate these into one log.
Finally, when using the parallel compiler, the CPU usage is extremely high. In a multi CPU scenario, the AXBuild.exe process will automatically balance the load between CPU’s. Also, is important to understand that parallel does not mean multi-threading, the new compiler is very much still a single-thread process.
The following picture depicts what a parallel compiler output looks like
Visit http://www.tribridge.com/ and learn about our Dynamics AX practice, services and focus, as well as our cloud services Concerto. Join our winning club!