Flecs v3.2
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
Stats

Collection of statistics for world, queries, systems and pipelines. More...

Collaboration diagram for Stats:

Classes

struct  ecs_gauge_t
 Simple value that indicates current state. More...
 
struct  ecs_counter_t
 Monotonically increasing counter. More...
 
union  ecs_metric_t
 Make all metrics the same size, so we can iterate over fields. More...
 
struct  ecs_world_stats_t
 
struct  ecs_query_stats_t
 Statistics for a single query (use ecs_query_stats_get()) More...
 
struct  ecs_system_stats_t
 Statistics for a single system (use ecs_system_stats_get()) More...
 
struct  ecs_sync_stats_t
 Statistics for sync point. More...
 
struct  ecs_pipeline_stats_t
 Statistics for all systems in a pipeline. More...
 

Macros

#define ECS_STAT_WINDOW   (60)
 

Typedefs

typedef struct ecs_gauge_t ecs_gauge_t
 Simple value that indicates current state.
 
typedef struct ecs_counter_t ecs_counter_t
 Monotonically increasing counter.
 
typedef union ecs_metric_t ecs_metric_t
 Make all metrics the same size, so we can iterate over fields.
 
typedef struct ecs_world_stats_t ecs_world_stats_t
 
typedef struct ecs_query_stats_t ecs_query_stats_t
 Statistics for a single query (use ecs_query_stats_get())
 
typedef struct ecs_system_stats_t ecs_system_stats_t
 Statistics for a single system (use ecs_system_stats_get())
 
typedef struct ecs_sync_stats_t ecs_sync_stats_t
 Statistics for sync point.
 
typedef struct ecs_pipeline_stats_t ecs_pipeline_stats_t
 Statistics for all systems in a pipeline.
 

Functions

FLECS_API void ecs_world_stats_get (const ecs_world_t *world, ecs_world_stats_t *stats)
 Get world statistics.
 
FLECS_API void ecs_world_stats_reduce (ecs_world_stats_t *dst, const ecs_world_stats_t *src)
 Reduce source measurement window into single destination measurement.
 
FLECS_API void ecs_world_stats_reduce_last (ecs_world_stats_t *stats, const ecs_world_stats_t *old, int32_t count)
 Reduce last measurement into previous measurement, restore old value.
 
FLECS_API void ecs_world_stats_repeat_last (ecs_world_stats_t *stats)
 Repeat last measurement.
 
FLECS_API void ecs_world_stats_copy_last (ecs_world_stats_t *dst, const ecs_world_stats_t *src)
 Copy last measurement from source to destination.
 
FLECS_API void ecs_world_stats_log (const ecs_world_t *world, const ecs_world_stats_t *stats)
 
FLECS_API void ecs_query_stats_get (const ecs_world_t *world, const ecs_query_t *query, ecs_query_stats_t *stats)
 Get query statistics.
 
FLECS_API void ecs_query_stats_reduce (ecs_query_stats_t *dst, const ecs_query_stats_t *src)
 Reduce source measurement window into single destination measurement.
 
FLECS_API void ecs_query_stats_reduce_last (ecs_query_stats_t *stats, const ecs_query_stats_t *old, int32_t count)
 Reduce last measurement into previous measurement, restore old value.
 
FLECS_API void ecs_query_stats_repeat_last (ecs_query_stats_t *stats)
 Repeat last measurement.
 
FLECS_API void ecs_query_stats_copy_last (ecs_query_stats_t *dst, const ecs_query_stats_t *src)
 Copy last measurement from source to destination.
 
FLECS_API bool ecs_system_stats_get (const ecs_world_t *world, ecs_entity_t system, ecs_system_stats_t *stats)
 Get system statistics.
 
FLECS_API void ecs_system_stats_reduce (ecs_system_stats_t *dst, const ecs_system_stats_t *src)
 Reduce source measurement window into single destination measurement.
 
FLECS_API void ecs_system_stats_reduce_last (ecs_system_stats_t *stats, const ecs_system_stats_t *old, int32_t count)
 Reduce last measurement into previous measurement, restore old value.
 
FLECS_API void ecs_system_stats_repeat_last (ecs_system_stats_t *stats)
 Repeat last measurement.
 
FLECS_API void ecs_system_stats_copy_last (ecs_system_stats_t *dst, const ecs_system_stats_t *src)
 Copy last measurement from source to destination.
 
FLECS_API bool ecs_pipeline_stats_get (ecs_world_t *world, ecs_entity_t pipeline, ecs_pipeline_stats_t *stats)
 Get pipeline statistics.
 
FLECS_API void ecs_pipeline_stats_fini (ecs_pipeline_stats_t *stats)
 Free pipeline stats.
 
FLECS_API void ecs_pipeline_stats_reduce (ecs_pipeline_stats_t *dst, const ecs_pipeline_stats_t *src)
 Reduce source measurement window into single destination measurement.
 
FLECS_API void ecs_pipeline_stats_reduce_last (ecs_pipeline_stats_t *stats, const ecs_pipeline_stats_t *old, int32_t count)
 Reduce last measurement into previous measurement, restore old value.
 
FLECS_API void ecs_pipeline_stats_repeat_last (ecs_pipeline_stats_t *stats)
 Repeat last measurement.
 
FLECS_API void ecs_pipeline_stats_copy_last (ecs_pipeline_stats_t *dst, const ecs_pipeline_stats_t *src)
 Copy last measurement to destination.
 
FLECS_API void ecs_metric_reduce (ecs_metric_t *dst, const ecs_metric_t *src, int32_t t_dst, int32_t t_src)
 Reduce all measurements from a window into a single measurement.
 
FLECS_API void ecs_metric_reduce_last (ecs_metric_t *m, int32_t t, int32_t count)
 Reduce last measurement into previous measurement.
 
FLECS_API void ecs_metric_copy (ecs_metric_t *m, int32_t dst, int32_t src)
 Copy measurement.
 

Detailed Description

Collection of statistics for world, queries, systems and pipelines.

Macro Definition Documentation

◆ ECS_STAT_WINDOW

#define ECS_STAT_WINDOW   (60)

Definition at line 26 of file stats.h.

Function Documentation

◆ ecs_pipeline_stats_copy_last()

FLECS_API void ecs_pipeline_stats_copy_last ( ecs_pipeline_stats_t * dst,
const ecs_pipeline_stats_t * src )

Copy last measurement to destination.

This operation copies the last measurement into the destination. It does not modify the cursor.

Parameters
dstThe metrics.
srcThe metrics to copy.

◆ ecs_pipeline_stats_fini()

FLECS_API void ecs_pipeline_stats_fini ( ecs_pipeline_stats_t * stats)

Free pipeline stats.

Parameters
statsThe stats to free.

◆ ecs_pipeline_stats_get()

FLECS_API bool ecs_pipeline_stats_get ( ecs_world_t * world,
ecs_entity_t pipeline,
ecs_pipeline_stats_t * stats )

Get pipeline statistics.

Obtain statistics for the provided pipeline.

Parameters
worldThe world.
pipelineThe pipeline.
statsOut parameter for statistics.
Returns
true if success, false if not a pipeline.

◆ ecs_query_stats_get()

FLECS_API void ecs_query_stats_get ( const ecs_world_t * world,
const ecs_query_t * query,
ecs_query_stats_t * stats )

Get query statistics.

Obtain statistics for the provided query.

Parameters
worldThe world.
queryThe query.
statsOut parameter for statistics.

◆ ecs_system_stats_get()

FLECS_API bool ecs_system_stats_get ( const ecs_world_t * world,
ecs_entity_t system,
ecs_system_stats_t * stats )

Get system statistics.

Obtain statistics for the provided system.

Parameters
worldThe world.
systemThe system.
statsOut parameter for statistics.
Returns
true if success, false if not a system.

◆ ecs_world_stats_get()

FLECS_API void ecs_world_stats_get ( const ecs_world_t * world,
ecs_world_stats_t * stats )

Get world statistics.

Parameters
worldThe world.
statsOut parameter for statistics.