
.. _debug-vs-release-page:

#################
Debug vs. Release 
#################

|ProductName| contains a lot of Asserts in debug build to help the programmer track down bugs and illegal usage 
situations.
While these asserts add a safety net and help the developer, they also have a significant impact on performance. 

So make sure you use the Release version of |ProductName| when doing performance testing.


**Asserts when Using the Debug Version**

Envision toolkits use two level of asserts. In debug builds, both of these levels are used and thus performance will be 
impacted.
When used from C++ on Windows, asserts in the debug builds of Envision toolkits will show the standard assert dialog:

.. image:: ../../images/assert_dialog.png
    
In the .NET version, the asserts will throw exceptions.

**Asserts when Using the Release Version**

In the release version, only the non-performance critical asserts are in use, and they only log to the 
:ref:`Logging <logging-page>` system and do not present the standard Assert dialog.
