Obtaining data
Contents List
TrendTraceableViewdata: Which data will be traced?SceneRetrievingGraphdataViewPropertiesLoadingViewdata
TrendTraceable Viewdata: Which data will be traced?
Allocating and releasing memory
The Trendmost Viewimportant showspart successivelyof recordedthis keyAnalyzer performancemodule indicatorsis suchtracing all allocation and free calls within the code. That includes normal allocation/free calls as well as allocations in the Backing Heap.
The used terminology within the Analyzer is:
CPUAllocateloadmemory(if<->available)AllocGPUFreeloadmemory(if<->available)FreeFrameAllocateRatein Backing Heap <-> Create
Informational data
This feature is not added to a public interface yet.
Additional to these four existing types are several information types.
These informations are used to provide more information and are generally used as orientation and filter helpers.
List of information types:
Start and end marker
These marker define a specified timespan within application runtime.
Example: Encapsulate the render loop. Based on these markers it is easy to find out which memory changes happened every single loop iteration.
Retrieving data
Binary memory logging
The standard way to log memory changes is to enable it with CMake.
To enabled it you have to complete the following steps:
FEATSTD_MEMORYPOOL_ENABLED trueEnable monitoring
FEATSTD_MONITOR_ENABLED trueEnable memory binary logging
MONITOR_MEMORYPOOL_BINARY_LOGGING_ENABLED true
It can be displayed via the View Ribbon Group of the Online Ribbon Tab.

The following shows a Trend View for a host simulation. The color assignment for the performance indicators is currently fixed and as follows:

Mouse over the Trend View shows a clear button which resets the view.
Right-clicking the Trend View opens a context menu forOptional:
closingChangeitfilenameand
MONITOR_MEMORYPOOL_BINARY_LOGGING_FILENAME
-
GPUOnlyloadloggingavailabilityinto a file isdependantcurrentlyonsupported.deviceTurningcapabilities.off Performance Recording whilst logging memory changes is currently not supported yet. Using TCP/IP or Serial without an established connection (and therefore Performance Recording is ignored) is working though.
Textual settingsmemory menu also provides settings for trends:

These settings allow to set the update rate and the history length of trends. ITIt is possible to changeload a trace-log of your Logger into the Analyzer. There are a few required steps to make it work.
FEATSTD_LOG_SET_LOG_LEVEL(Debug);
Set the log level as soon as possible. All allocations before will not be traced, this also includes the memory pool preinitialization.
The messages have to keep their default format:// sample for heap alloc 0000000.025 [0x00000000] DEBUG FeatStdMemoryManagement FeatStdDefaultMemoryPool(0) heap alloc 0E2A93D0(24:P) // sample for alloc memory 0000000.026 [0x00000000] DEBUG FeatStdMemoryManagement \featstd\src\FeatStd/Container/Vector.h(696): FeatStdDefaultMemoryPool(0) alloc 0E2A93E0 8(24:P) // sample for free memory 0000000.027 [0x00000000] DEBUG FeatStdMemoryManagement \featstd\src\FeatStd/Container/Vector.h(696): FeatStdDefaultMemoryPool(0) free 0E2A93E0 8(24:P) // sample for heap free 0000000.028 [0x00000000] DEBUG FeatStdMemoryManagement FeatStdDefaultMemoryPool(0) heap free 0E2A93D0(24:P)
CgiAppLogger replaces the default logger and changes the format for DEBUG messages.
To trace all possible data, it is important to create the LogAppender before initializing memory pools and destroy it afterwards. The file extension for theseAll the flyother withoutmessage restarting,types: pausinginfo, orwarning, changingerror, thestart/end communication.marker are not available when using these textual logs.
SceneLoading Graph Viewdata
TheAll Scenelogfiles Graphcan Viewbe allowsloaded analysisby clicking the application menu button -> open -> Open Memory-Log or by Drag'n'Drop.
When loading a binary log file, a loading window will open after preanalyzing the content of the scenelog graph during paused mode.file.


This viewwindow gives information about the logfile and allows to prefilter the dataset.
It is dividedpossible vertically by a splitter into two sections:to:
ADisablecamerathreads
The tree view shows the scene graph associated with the selected camera in the camera list.
The following commands are available via a toolbar on top of the Scene Graph View:
Refresh:
Large commandlog isfiles alwaysmay availableslow in paused mode.
Node Grid:
Measure Rendering:
The properties of a selected node are displayed in the Properties View.
Properties View
Depending on the scene graph node selected in the Scene Graph View, different properties are displayed.
For each node, the following properties are displayed:
