AXBuild

I have been testing the new CU7 AXBuild compile feature. It seems to work quite well. Comparing the compile time of the AXBuild to the standard AX compile time is as follows:

Standard system X++ compile:          196 minutes

1 Core (min) 2 Core (min) 4 Core (min)
1 worker 120 112 117
2 worker 91 80 81
3 worker 89 75 71
4 worker 82 70 65
6 worker 79 66 58
8 worker 75 63 54
10 worker 74 63 57

AXBuilder_Graph

Microsoft states that 1.4 workers per core is the optimal. If the worker control is not specified at runtime it will multiply the number of cores by 3 and divide that by 2. This means it is running at 1.5 times core count.

My testing above shows there is a significant improvement over the standard AX compile, even with 1 worker. As the core count increases the overall time for compile improves as the worker count increases. Looking at the numbers the improvement after 2 times the core count is minimal, suggesting running at 2 time core count is really the maximum you would want to specify.

My testing is of course subjective. It is possible as I increased the number of workers and cores, but would simply move the bottleneck to another part of the system, either network IO or SQL IO. It is difficult to fully evaluate this with the test performed, so the results might be a little skewed. I have read how people on a quad core have been able to get compile times of 15 minutes. They did state they were using Hyper-V and SSD drivers, so this might correlate fairly well as SSD drivers are a lot faster.

The end result is, the increase off cores and workers result in an improved compile time.

Advertisements

One thought on “AXBuild

  1. Graham Richardson says:

    I have also noticed that increasing the number too high can be detrimental. I was testing on a Hyper-V system with 8 cores. Running this at the full 12 workers was much slower than running it with 6 workers.

    I Identified that this was a problem with the hard drive access. Essentially it had too many workers trying to write at the same time and the drive could not keep up.

    This may have ran better on a SAN or on SSDs but it was running on a single drive.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s