Skip to main content

Obtaining data

Contents List


 


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:

  • CPUAllocate loadmemory (if<-> available)Alloc
  • GPUFree loadmemory (if<-> available)Free
  • FrameAllocate Ratein Backing Heap <-> Create
Free Backing Heap Space <-> Destroy
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:

    Allocation failed message: Contains information of the failed request Warning message Error message - Possible types: textual message or error code Info message: Supports different priority levels additional to the message Start and end marker: Defines a named time range
    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.

    Back to the menu


    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:

      Enable MemoryPools
      FEATSTD_MEMORYPOOL_ENABLED true
      
      Enable monitoring
      FEATSTD_MONITOR_ENABLED true
      
      Enable memory binary logging
      MONITOR_MEMORYPOOL_BINARY_LOGGING_ENABLED true
      

      It can be displayed via the View Ribbon Group of the Online Ribbon Tab.

      drawing-4-1676526196.png

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

        Frame Rate (red) CPU load (green) GPU load (blue)
        drawing-4-1676526212.png

        Mouse over the Trend View shows a clear button which resets the view.

        Right-clicking the Trend View opens a context menu forOptional:

        • closingChange itfilename and
        MONITOR_MEMORYPOOL_BINARY_LOGGING_FILENAME 
        displaying"filename.membin" it always on top of every other window.

        GPUOnly loadlogging availabilityinto a file is dependantcurrently onsupported. deviceTurning capabilities.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.

        The

        Textual settingsmemory menu also provides settings for trends:
        drawing-4-1676526223.png

        logging

        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.

          The logger has to be enabled The messages are sent as DEBUG messages. So the logging level has to be DEBUG as minimum.
           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 these valuesfiles onhas to be '*.memlog'

          All the flyother withoutmessage restarting,types: pausinginfo, orwarning, changingerror, thestart/end communication.marker are not available when using these textual logs.

          Back to the menu


          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.

          drawing-4-1676526286.pngdrawing-4-1677747175.png

          This viewwindow gives information about the logfile and allows to prefilter the dataset.
          It is dividedpossible vertically by a splitter into two sections:to:

          • ADisable camerathreads
          listDisable memory pools Set a time range based on topall andrecorded Atime treemarker. viewUse ofDrag'n'Drop to place a scenetime graphmarker below.on 'Start' or 'End'.

          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:

            This

            Large commandlog isfiles alwaysmay availableslow in paused mode.

            Fetchesdown the sceneanalyzer graphsdrastically. fromThe theMemoryPool-Analyzer Canderasettings applicationcontains anda displaysproperty it.to Nodeset expansiona andcap selectedfor nodesmaximum areloaded preserved.entries.

            Node Grid:

              This command is available in paused mode, if a camera was selected from the camera list. Displays all information transferred for the scene graph of the selected camera in a grid.

              Measure Rendering:

                This command is available in paused mode, if a camera was selected from the camera list. Measures the rendering times of individual nodes and displays the render times along with static scene graph information in a grid

                The properties of a selected node are displayed in the Properties View.

                Back to the menu


                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:

                  Name: The name of the node, if available, a blank field otherwise Candera Type: The type of the node (e.g. Mesh or Group)
                  drawing-4-1676526325.png