# {py:mod}`simvx.core.debug.profiler` ```{py:module} simvx.core.debug.profiler ``` ```{autodoc2-docstring} simvx.core.debug.profiler :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`FrameProfiler ` - ```{autodoc2-docstring} simvx.core.debug.profiler.FrameProfiler :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`__all__ ` - ```{autodoc2-docstring} simvx.core.debug.profiler.__all__ :summary: ``` ```` ### API ````{py:data} __all__ :canonical: simvx.core.debug.profiler.__all__ :value: > ['FrameProfiler'] ```{autodoc2-docstring} simvx.core.debug.profiler.__all__ ``` ```` `````{py:class} FrameProfiler() :canonical: simvx.core.debug.profiler.FrameProfiler ```{autodoc2-docstring} simvx.core.debug.profiler.FrameProfiler ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.debug.profiler.FrameProfiler.__init__ ``` ````{py:method} begin(phase: str) :canonical: simvx.core.debug.profiler.FrameProfiler.begin ```{autodoc2-docstring} simvx.core.debug.profiler.FrameProfiler.begin ``` ```` ````{py:method} end(phase: str) :canonical: simvx.core.debug.profiler.FrameProfiler.end ```{autodoc2-docstring} simvx.core.debug.profiler.FrameProfiler.end ``` ```` ````{py:method} end_frame() :canonical: simvx.core.debug.profiler.FrameProfiler.end_frame ```{autodoc2-docstring} simvx.core.debug.profiler.FrameProfiler.end_frame ``` ```` ````{py:method} count_nodes(tree) :canonical: simvx.core.debug.profiler.FrameProfiler.count_nodes ```{autodoc2-docstring} simvx.core.debug.profiler.FrameProfiler.count_nodes ``` ```` ````{py:property} fps :canonical: simvx.core.debug.profiler.FrameProfiler.fps :type: float ```{autodoc2-docstring} simvx.core.debug.profiler.FrameProfiler.fps ``` ```` ````{py:property} frame_time_ms :canonical: simvx.core.debug.profiler.FrameProfiler.frame_time_ms :type: float ```{autodoc2-docstring} simvx.core.debug.profiler.FrameProfiler.frame_time_ms ``` ```` ````{py:property} node_count :canonical: simvx.core.debug.profiler.FrameProfiler.node_count :type: int ```{autodoc2-docstring} simvx.core.debug.profiler.FrameProfiler.node_count ``` ```` ````{py:property} control_count :canonical: simvx.core.debug.profiler.FrameProfiler.control_count :type: int ```{autodoc2-docstring} simvx.core.debug.profiler.FrameProfiler.control_count ``` ```` ````{py:property} last_frame :canonical: simvx.core.debug.profiler.FrameProfiler.last_frame :type: dict[str, float] ```{autodoc2-docstring} simvx.core.debug.profiler.FrameProfiler.last_frame ``` ```` ````{py:method} phase_avg_ms(phase: str, count: int = 60) -> float :canonical: simvx.core.debug.profiler.FrameProfiler.phase_avg_ms ```{autodoc2-docstring} simvx.core.debug.profiler.FrameProfiler.phase_avg_ms ``` ```` ````{py:method} frame_times(count: int = 120) -> list[float] :canonical: simvx.core.debug.profiler.FrameProfiler.frame_times ```{autodoc2-docstring} simvx.core.debug.profiler.FrameProfiler.frame_times ``` ```` `````