Skip to content

Performance Tips

You can greatly improve your users' experience by implementing these performance tips.

Prevent Automatic Application Shutdown

By default, IIS shuts down web site applications after 20 minutes of inactivity. It is an expensive and time consuming process for the API application to open an Evolution Company database after a cold start as it needs to build a complicated model of the database and initialise it (may take ~20 seconds), so to avoid this delay which may occur frequently if you don't continuously access Evo.NET, it is recommended that you configure the API's application pool to stay alive.

Select the API's application pool and edit the Advanced Settings.

AppPool Settings

Set the Idle Time-out (minutes) to 0 (indefinite) and the Start Mode to Always Running

Enable Dynamic Content Compression

The data Evo.NET receives from the server is generally in JSON format. This text format representing database rows is very amenable to compression (i.e. zipping) and can achieve upwards of a 90% compression rate. IIS Dynamic Compression is a feature within Internet Information Services (IIS) that compresses dynamic content in real-time for each request before it is sent to a client. Unfortunately, JSON responses are not included by default when dynamic compression is enabled, so we will have to add that content type.

WARNING

While dynamic compression can significantly improve website performance and reduce bandwidth usage, its impact on CPU utilization should be monitored, especially on servers with high traffic or limited processing power. In such cases, careful consideration of server resources and potential adjustments to compression settings or server hardware may be necessary.

Open IIS Manager and select the server node and then Compression.

IIS Compression

Ensure that Enable dynamic content compression is checked.

WARNING

If this checkbox is disabled, the Dynamic Content Compression feature of IIS has not been installed. You can run the Server Manager/Windows Feature Installer to install it.

IIS Dynamic Content Compression

Click Apply if the checkbox was previously unselected.
Click Back and then select the Configuration Editor.

IIS Configuration Editor

From the Section drop-down, expand system.webServer and select httpCompression.

IIS Configuration Webserver

Click the ellipsis button on the dynamicTypes to view/edit the configured types in the Collection Editor.

IIS httpCompression

Click the Add link, then in the type editor below, set enabled=True and enter application/json for the mimeType.

IIS Add Dynamic Type

Close the Collection Editor and click the Apply link.

IIS Save Compression

Restart the IIS Server to allow the configuration changes to take effect.

IIS Restart

Test if dynamic content compression is working

  • Navigate in Evo.NET to the General Ledger Account List.
  • Press F12 to open your browser's Developer Tools.
  • Select the Network tab in Developer Tools pane.
  • Right-click a column header to bring up the column select menu.
  • Expand Response Headers and select Content-Encoding. This will make that column visible in the grid.

Chrome DevTools Response Encoding

  • Clear the Network log to remove any clutter.
  • Click the Refresh button in the General Ledger Accounts List.
  • Before Dynamic Content Compression is enabled: Size: 103kB; Content-Encoding: (blank);

Chrome DevTools Response Uncompressed

  • After Dynamic Content Compression is enabled: Size: 6.1kB; Content-Encoding: gzip;

Chrome DevTools Response Compressed

That is a savings of more than 94% in bandwidth usage and will also save many seconds for larger payloads. Enjoy!

Contact Evo.NET