KB Article T807111
Visible to All Users

Performance & Stability Enhancements for Design-Time Model Editor, Application & Module Designers in XAF v19.2

XAF v19.2 optimizes startup time and memory consumption for the following designers and editors:

  1. Module Designer: startup time in most scenarios.
  2. Application Designer: startup time in apps with certain modules (most notably, apps that use the WorkflowModule).
  3. Model Editor: startup time in specific scenarios.
  4. Application & Module Designers: memory consumption.

Test Results on Large-Scale Customer Apps

  • Module Designer startup time for a customer app with 70 modules and 600 controllers:
    v19.1: 78 sec (532 MB RAM)
    v19.2: 12.5 sec (308 MB RAM)

  • Application Designer startup time for a customer app with 70 modules and 600 controllers:
    v19.1: 140 sec (417 MB RAM)
    v19.2: 54 sec (337 MB RAM)

  • Model Editor startup time for a customer app with 70 modules and 600 controllers:
    v19.1: 14.5 sec
    v19.2: 13 sec

  • Module Designer startup time for a customer app with 20 modules and 800 controllers:
    v19.1: 93 sec
    v19.2: 18.5 sec

  • Application Designer startup time for a customer app with 20 modules and 800 controllers:
    v19.1: 75 sec
    v19.2: 48 sec

  • Model Editor startup time for a customer app with 20 modules and 800 controllers:
    v19.1: 29.5 sec
    v19.2: 25 sec

All performance measurements above were carried out on an Intel® Core™ i7-4790 CPU @ 3.60GHz, 4 Core(s), 8 Logical Processor(s).

Comments from early testers:

  1. "A rough comparison of our app. DX 17.2 , 1m49.32s, DX 19.2, 16.73s. So definitely faster now. It's a more usable time now & means I don't have to synchronise toilet breaks with model editing."
  2. "The performance now is crazy / insane!!! Amazing job guys!!! Most of the models now nearly open instantly!"

How to Disable These Optimizations

We provide a custom implementation for Visual Studio's ITypeDiscoveryService. An update to the GetTypes method in particular helped us resolve performance issues in large-scale apps.

This change may affect many aspects of application development, so you may want to revert to original implementation in case of any issues:

  1. Edit your .sln file in Notepad or your favorite text editor.
  2. Find the GlobalSection(ExtensibilityGlobals) = postSolution section. If it does not exist, add the following code before the EndGlobal element:
Code
GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection
  1. Insert UseDefaultTypeDiscoveryService = true into the GlobalSection(ExtensibilityGlobals) = postSolution section.

See Also:
Default XAF configuration options and feature toggles
How to measure and improve the application's performance
Performance enhancements in XAF v19.1 for all supported platforms

Comments (1)
CR CR
Chris Royle (LOBS) 5 years ago

    Hi Dennis

    Our development has caught up with 19.2 (we have moved from 17.2 to 19.2). First impressions of these improvement are very favorable.

    Thanks for the good work Team DX.

    Chris

    Disclaimer: The information provided on DevExpress.com and affiliated web properties (including the DevExpress Support Center) is provided "as is" without warranty of any kind. Developer Express Inc disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.

    Confidential Information: Developer Express Inc does not wish to receive, will not act to procure, nor will it solicit, confidential or proprietary materials and information from you through the DevExpress Support Center or its web properties. Any and all materials or information divulged during chats, email communications, online discussions, Support Center tickets, or made available to Developer Express Inc in any manner will be deemed NOT to be confidential by Developer Express Inc. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.