This is a constantly updated section where I'll try to put the answers to the
most frequently asked questions.
If you don't find your answer here, there are two cases: nobody has done it yet
or this section needs updating. In both cases, try to
open a new issue or enter the
gitter channel and ask your question.
Probably someone already has an answer for you and we can then integrate this
part of the documentation.
EnTT
is an experimental project that I also use to keep me up-to-date with the
latest revision of the language and the standard library. For this reason, it's
likely that some classes you're working with are using standard containers under
the hood.
Unfortunately, it's known that the standard containers aren't particularly
performing in debugging (the reasons for this go beyond this document) and are
even less so on Windows apparently. Fortunately this can also be mitigated a
lot, achieving good results in many cases.
First of all, there are two things to do in a Windows project:
Disable the /JMC
option (Just My Code debugging), available starting in Visual Studio 2017
version 15.8.
Set the _ITERATOR_DEBUG_LEVEL
macro to 0. This will disable checked iterators and iterator debugging.
Moreover, the macro ENTT_DISABLE_ASSERT
should be defined to disable internal
checks made by EnTT
in debug. These are asserts introduced to help the users,
but require to access to the underlying containers and therefore risk ruining
the performance in some cases.
With these changes, debug performance should increase enough for most cases. If
you want something more, you can can also switch to an optimization level O0
or preferably O1
.