Flecs v4.0
A fast entity component system (ECS) for C & C++
|
Statistics addon. More...
Go to the source code of this file.
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_cache_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... | |
struct | EcsStatsHeader |
Common data for statistics. More... | |
struct | EcsWorldStats |
Component that stores world statistics. More... | |
struct | EcsSystemStats |
Component that stores system statistics. More... | |
struct | EcsPipelineStats |
Component that stores pipeline statistics. More... | |
struct | EcsWorldSummary |
Component that stores a summary of world statistics. 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_cache_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_cache_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_cache_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_cache_stats_repeat_last (ecs_query_stats_t *stats) |
Repeat last measurement. | |
FLECS_API void | ecs_query_cache_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. | |
FLECS_API | ECS_COMPONENT_DECLARE (FlecsStats) |
Flecs stats module. | |
FLECS_API | ECS_COMPONENT_DECLARE (EcsWorldStats) |
Component id for EcsWorldStats. | |
FLECS_API | ECS_COMPONENT_DECLARE (EcsWorldSummary) |
Component id for EcsWorldSummary. | |
FLECS_API | ECS_COMPONENT_DECLARE (EcsSystemStats) |
Component id for EcsSystemStats. | |
FLECS_API | ECS_COMPONENT_DECLARE (EcsPipelineStats) |
Component id for EcsPipelineStats. | |
FLECS_API void | FlecsStatsImport (ecs_world_t *world) |
Stats module import function. | |
Variables | |
FLECS_API ecs_entity_t | EcsPeriod1s |
Tag used for metrics collected in last second. | |
FLECS_API ecs_entity_t | EcsPeriod1m |
Tag used for metrics collected in last minute. | |
FLECS_API ecs_entity_t | EcsPeriod1h |
Tag used for metrics collected in last hour. | |
FLECS_API ecs_entity_t | EcsPeriod1d |
Tag used for metrics collected in last day. | |
FLECS_API ecs_entity_t | EcsPeriod1w |
Tag used for metrics collected in last week. | |
Statistics addon.
The stats addon tracks high resolution statistics for the world, systems and pipelines. The addon can be used as an API where an application calls functions to obtain statistics directly and as a module where statistics are automatically tracked. The latter is required for statistics tracking in the explorer.
When the addon is imported as module, statistics are tracked for each frame, second, minute, hour, day and week with 60 datapoints per tier.
Definition in file stats.h.