DVT e Language IDE User Guide
Rev. 24.2.24, 14 October 2024

36.9 Memory Monitor

The Memory Monitor keeps track of the memory usage during memory intensive operations such as Build, Linting (Verissimo), UVM Runtime Elaboration and Documentation Generation (Specador) and notifies you when:

  • The operation in progress is significantly slowed down by low memory:

  • A memory starvation state is reached

Note: Memory starvation happens when a Java-based application such as DVT, Verissimo or Specador struggles to cope with insufficient memory and ultimately leads to major performance degradation. This can easily be fixed by allocating enough memory to fit the project's size.

Such messages will be printed to console - see Output and logging. In the DVT Eclipse IDE you will also get feedback via:

  • a pop-up notification

  • a problem in the Problems View

You can disable the warning notifications by:

  • checking the "Don't show again" option from the pop-up notification

  • un-checking the "Display Memory Warning" from Window > Preferences > DVT > Memory Monitor.

To disable the Memory Monitor, add the +dvt_disable_memory_starvation_handling directive in the build configuration file.

To generate Memory Monitor debug information, add the +dvt_enable_memory_starvation_handling_debug directive in the build configuration file. Afterwards, the next monitoring session will generate a log file dvt_memory_monitor_<timestamp>.log in the project's root.

By default, when memory usage exceeds 80% a warning is issued, and when significant performance degradation is observed due to excessive GC, the monitored operation is stopped.

Use +dvt_memory_starvation_handling to select a different memory starvation handling strategy. Available are:

  • proactive - warnings disabled, stops the monitored operation when it detects memory usage above 80%. Example: +dvt_enable_memory_starvation_handling+proactive

Note: For advanced debugging, you can control Memory Monitor parameters using the following directive:

+dvt_set_memory_starvation_handling_parameters+start_delay=<time_in_ms>+warning_th=<used_mem_percent>+gc_time=<gc_percent_time>+time_window=<build_time_percent>+stop_operation_th=<stop_operation_percentage>+ignoreWarning