![]() |
Flecs v4.0
A fast entity component system (ECS) for C & C++
|
Collection of statistics for world, queries, systems and pipelines. More...
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... | |
struct | ecs_entities_memory_t |
Entity memory. More... | |
struct | ecs_component_memory_t |
struct | ecs_component_index_memory_t |
Component index memory. More... | |
struct | ecs_query_memory_t |
Query memory. More... | |
struct | ecs_table_memory_t |
Table memory. More... | |
struct | ecs_table_histogram_t |
Table size histogram. More... | |
struct | ecs_misc_memory_t |
Misc memory. More... | |
struct | ecs_allocator_memory_t |
Allocator memory. More... | |
struct | EcsWorldMemory |
Component with memory statistics. More... | |
Macros | |
#define | ECS_STAT_WINDOW (60) |
#define | ECS_TABLE_MEMORY_HISTOGRAM_BUCKET_COUNT 14 |
Table memory histogram constants. | |
#define | ECS_TABLE_MEMORY_HISTOGRAM_MAX_COUNT (1 << ECS_TABLE_MEMORY_HISTOGRAM_BUCKET_COUNT) |
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 | ECS_COMPONENT_DECLARE (ecs_entities_memory_t) |
Component id for ecs_entities_memory_t. | |
FLECS_API | ECS_COMPONENT_DECLARE (ecs_component_index_memory_t) |
Component id for ecs_component_index_memory_t. | |
FLECS_API | ECS_COMPONENT_DECLARE (ecs_query_memory_t) |
Component id for ecs_query_memory_t. | |
FLECS_API | ECS_COMPONENT_DECLARE (ecs_component_memory_t) |
Component id for ecs_component_memory_t. | |
FLECS_API | ECS_COMPONENT_DECLARE (ecs_table_memory_t) |
Component id for ecs_table_memory_t. | |
FLECS_API | ECS_COMPONENT_DECLARE (ecs_misc_memory_t) |
Component id for ecs_misc_memory_t. | |
FLECS_API | ECS_COMPONENT_DECLARE (ecs_table_histogram_t) |
Component id for ecs_table_histogram_t. | |
FLECS_API | ECS_COMPONENT_DECLARE (ecs_allocator_memory_t) |
Component id for ecs_allocator_memory_t. | |
FLECS_API | ECS_COMPONENT_DECLARE (EcsWorldMemory) |
Component id for EcsWorldMemory. | |
FLECS_API ecs_entities_memory_t | ecs_entity_memory_get (const ecs_world_t *world) |
Memory statistics getters. | |
void | ecs_component_record_memory_get (const ecs_component_record_t *cr, ecs_component_index_memory_t *result) |
Get memory usage statistics for single component record. | |
FLECS_API ecs_component_index_memory_t | ecs_component_index_memory_get (const ecs_world_t *world) |
Get memory usage statistics for the component index. | |
FLECS_API void | ecs_query_memory_get (const ecs_query_t *query, ecs_query_memory_t *result) |
Get memory usage statistics for single query. | |
FLECS_API ecs_query_memory_t | ecs_queries_memory_get (const ecs_world_t *world) |
Get memory usage statistics for queries. | |
void | ecs_table_component_memory_get (const ecs_table_t *table, ecs_component_memory_t *result) |
Get component memory for table. | |
FLECS_API ecs_component_memory_t | ecs_component_memory_get (const ecs_world_t *world) |
Get memory usage statistics for components. | |
void | ecs_table_memory_get (const ecs_table_t *table, ecs_table_memory_t *result) |
Get memory usage statistics for single table. | |
FLECS_API ecs_table_memory_t | ecs_tables_memory_get (const ecs_world_t *world) |
Get memory usage statistics for tables. | |
FLECS_API ecs_table_histogram_t | ecs_table_histogram_get (const ecs_world_t *world) |
Get number of tables by number of entities in the table. | |
FLECS_API ecs_misc_memory_t | ecs_misc_memory_get (const ecs_world_t *world) |
Get memory usage statistics for commands. | |
FLECS_API ecs_allocator_memory_t | ecs_allocator_memory_get (const ecs_world_t *world) |
Get memory usage statistics for allocators. | |
FLECS_API ecs_size_t | ecs_memory_get (const ecs_world_t *world) |
Get total memory used by world. | |
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. | |
Collection of statistics for world, queries, systems and pipelines.
#define ECS_TABLE_MEMORY_HISTOGRAM_BUCKET_COUNT 14 |
#define ECS_TABLE_MEMORY_HISTOGRAM_MAX_COUNT (1 << ECS_TABLE_MEMORY_HISTOGRAM_BUCKET_COUNT) |
FLECS_API ecs_allocator_memory_t ecs_allocator_memory_get | ( | const ecs_world_t * | world | ) |
Get memory usage statistics for allocators.
world | The world. |
FLECS_API ecs_component_index_memory_t ecs_component_index_memory_get | ( | const ecs_world_t * | world | ) |
Get memory usage statistics for the component index.
world | The world. |
FLECS_API ecs_component_memory_t ecs_component_memory_get | ( | const ecs_world_t * | world | ) |
Get memory usage statistics for components.
world | The world. |
void ecs_component_record_memory_get | ( | const ecs_component_record_t * | cr, |
ecs_component_index_memory_t * | result ) |
Get memory usage statistics for single component record.
cr | The component record. |
result | Memory statistics for component record (out). |
FLECS_API ecs_entities_memory_t ecs_entity_memory_get | ( | const ecs_world_t * | world | ) |
Memory statistics getters.
Get memory usage statistics for the entity index.
world | The world. |
FLECS_API ecs_size_t ecs_memory_get | ( | const ecs_world_t * | world | ) |
Get total memory used by world.
world | The world. |
FLECS_API ecs_misc_memory_t ecs_misc_memory_get | ( | const ecs_world_t * | world | ) |
Get memory usage statistics for commands.
world | The world. |
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.
dst | The metrics. |
src | The metrics to copy. |
FLECS_API void ecs_pipeline_stats_fini | ( | ecs_pipeline_stats_t * | stats | ) |
Free pipeline stats.
stats | The stats to free. |
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.
world | The world. |
pipeline | The pipeline. |
stats | Out parameter for statistics. |
FLECS_API ecs_query_memory_t ecs_queries_memory_get | ( | const ecs_world_t * | world | ) |
Get memory usage statistics for queries.
world | The world. |
FLECS_API void ecs_query_memory_get | ( | const ecs_query_t * | query, |
ecs_query_memory_t * | result ) |
Get memory usage statistics for single query.
query | The query. |
result | Memory statistics for query (out). |
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.
world | The world. |
query | The query. |
stats | Out parameter for statistics. |
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.
world | The world. |
system | The system. |
stats | Out parameter for statistics. |
void ecs_table_component_memory_get | ( | const ecs_table_t * | table, |
ecs_component_memory_t * | result ) |
Get component memory for table.
table | The table. |
result | The memory used by components stored in this table (out). |
FLECS_API ecs_table_histogram_t ecs_table_histogram_get | ( | const ecs_world_t * | world | ) |
Get number of tables by number of entities in the table.
world | The world. |
void ecs_table_memory_get | ( | const ecs_table_t * | table, |
ecs_table_memory_t * | result ) |
Get memory usage statistics for single table.
table | The table. |
result | Memory statistics for table (out). |
FLECS_API ecs_table_memory_t ecs_tables_memory_get | ( | const ecs_world_t * | world | ) |
Get memory usage statistics for tables.
world | The world. |
FLECS_API void ecs_world_stats_get | ( | const ecs_world_t * | world, |
ecs_world_stats_t * | stats ) |
Get world statistics.
world | The world. |
stats | Out parameter for statistics. |
FLECS_API void FlecsStatsImport | ( | ecs_world_t * | world | ) |