releases/2.5.4mrtk_developmentreleases/2.0.0releases/2.1.0releases/2.2.0releases/2.4.0releases/2.5.0releases/2.5.1releases/2.5.2releases/2.5.3
  • Guides
  • API Documentation

We've moved!

Starting from MRTK 2.6, we are publishing both conceptual docs and API references on docs.microsoft.com. For conceptual docs, please visit our new landing page. For API references, please visit the MRTK-Unity section of the dot net API explorer. Existing content will remain here but will not be updated further.

  • Guides
  • Feature Overviews
  • Diagnostics System
  • Using the Visual Profiler

    Show / Hide Table of Contents
    • Getting Started with MRTK
      • Release Notes
      • MRTK Package Contents
      • Updating from earlier versions
      • Upgrading from HTK
      • Building and Deploying MRTK
      • NuGet Packages
      • Getting started with MRTK and XR SDK
      • Performance
      • Hologram Stabilization
    • Architecture
      • Overview
      • Framework and Runtime
      • Input System
        • Terminology
        • Core System
        • Controllers, Pointers, and Focus
      • Systems, Extension Services and Data Providers
    • Feature Overviews
      • Boundary System
        • Boundary System Overview
        • Configuring the Boundary Visualization
      • Camera System
        • Camera System Overview
        • Camera Settings Providers
          • Windows Mixed Reality Camera Settings
          • Unity AR Camera Settings [Experimental]
          • Creating a camera settings provider
      • Cross Platform Support
        • Configure MRTK for iOS and Android
      • Detecting Platform Capabilities
      • Diagnostics System
        • Diagnostics System Overview
        • Configuring the Diagnostics System
        • Using the Visual Profiler
      • Extension Services
        • Extension Service Creation Wizard
        • Scene Transition Service Overview
        • Hand Physics Service Overview
      • Input System
        • Input Overview
        • Input Actions
        • Input Events
        • Input Providers
          • Input Providers Overview
          • Creating an input data provider
        • Controllers
        • Eyes
        • Gaze
        • Gestures
        • Hands
        • How to Add Near Interaction
        • In-Editor Input Simulation
        • Pointers
        • Voice Input
          • Dictation
          • Speech (Command and Control)
      • Multi Scene System
        • Multi Scene System Overview
        • Scene Types
        • Content Scene Loading
        • Monitoring Content Loading
        • Lighting Scene Operations
      • Packaging
        • MRTK Packages
        • MRTK Modularization
      • Profiles
        • Profiles Overview
        • Configuration Guide
      • Rendering
        • Material Instance Overview
        • Shaders
          • MRTK Standard Shader
      • Services
        • What makes a mixed reality feature
        • What are the MixedRealityServiceRegistry and IMixedRealityServiceRegistrar
        • Extension services
      • Spatial Awareness System
        • Spatial Awareness Overview
        • Spatial Observers
          • Configuring Observers for Device
          • Configuring Observers for Editor
          • Controlling Observers via Code
          • Creating a custom Observer
      • Teleport System Overview
      • Tools
        • Dependency Window
        • Extension Service Creation Wizard
        • Holographic Remoting
        • Input Animation Recording
          • Input Animation File Format Specification
        • Optimize Window
        • Runtime tools
          • Controller Mapping tool
      • UX Building Blocks
        • Interactable
        • Button
        • Bounding Box
        • Object Manipulation
        • Sliders
        • Fingertip Visualization
        • App Bar
        • Object Collection
        • Slate
        • System Keyboard
        • Tooltips
        • Solvers
      • Example Scenes
        • Examples Hub
        • Hand Interaction Example
        • Eye Tracking Interaction Example
      • Experimental
        • Scrolling Object Collection
        • Hand Coach UX
        • Pulse Shader
    • Contributing
      • Contributing Overview
      • Coding Guidelines
      • Writing and Running Tests
      • Writing Documentation
      • Pull Requests
      • Experimental Features
      • Breaking Changes
      • How to use DocFX
    • Planning
      • Roadmap
    • Notice
    • Authors

    Using the visual profiler

    The VisualProfiler provides an easy to use, in-application view of a mixed reality application's performance. The profiler is supported on all Mixed Reality Toolkit platforms, including:

    • Microsoft HoloLens (1st gen)
    • Microsoft HoloLens 2
    • Windows Mixed Reality immersive headsets
    • OpenVR

    While developing an application, focus on multiple parts of the scene as the Visual Profiler displays data relative to the current view.

    Important

    Focus attention on portions of the scene with complex objects, particle effects or activity. These and other factors often contribute to reduction in application performance and a less than ideal user experience.

    Visual profiler interface

    Visual Profiler Interface

    The Visual Profiler interface includes the following components:

    • Frame Rate
    • Frame Time
    • Frame Graph
    • Memory Utilization

    Frame rate

    In the upper-left corner of the interface is the frame rate, measured in frames per second. For the best user experience and comfort, this value should be as high as possible.

    The specific platform and hardware configuration will play a significant role in the maximum achievable frame rate. Some common target values include:

    • Microsoft HoloLens: 60
    • Windows Mixed Reality Ultra: 90

    Frame time

    To the right of the frame rate is the frame time, in milliseconds, spent on the CPU. To achieve the target frame rates mentioned previously, an application can spend the following amount of time per frame:

    • 60 fps: 16.6 ms
    • 90 fps: 11.1 ms

    GPU time is planned to be added in a future release.

    Frame graph

    The frame graph provides a graphical display of the application frame rate history.

    Visual Profiler Frame Graph

    When using the application, look for missed frames which indicate that the application is not hitting its target frame rate and may need optimization work.

    Memory utilization

    The memory utilization display allows for easy understanding of how the current view is impacting an application's memory consumption.

    Visual Profiler Frame Graph

    When using the application, look for total memory usage. Key indicators include nearing the memory limit and rapid changes in usage.

    Customizing the visual profiler

    The Visual Profiler's appearance and behavior are customizable via the diagnostics system profile. Please see Configuring the Diagnostics System for more information.

    See also

    • Diagnostics System
    • Configuring the Diagnostics System
    • Improve this Doc
    In This Article
    • Visual profiler interface
      • Frame rate
      • Frame time
      • Frame graph
      • Memory utilization
    • Customizing the visual profiler
    • See also
    Back to top Generated by DocFX