Skip to content

Instantly share code, notes, and snippets.

@SanderMertens
Created June 19, 2020 20:52
Show Gist options
  • Save SanderMertens/65667ddcb9009dfb66d07f4db7b5cef2 to your computer and use it in GitHub Desktop.
Save SanderMertens/65667ddcb9009dfb66d07f4db7b5cef2 to your computer and use it in GitHub Desktop.

World


World creation (n = 10):

Framework Measurement
flecs 0.005501 World creation

Main loop (n = 1000):

Framework Measurement
flecs 0.000072 ecs_progress (empty)
flecs 0.000093 ecs_progress (empty, get time)
flecs 0.000221 ecs_progress (empty, fps)
flecs 0.000071 ecs_progress (1 inactive)
flecs 0.000074 ecs_progress (100 inactive)
flecs 0.000123 ecs_progress (1 active)
flecs 0.000384 ecs_progress (10 active)
flecs 0.002875 ecs_progress (100 active)

Filters


Filter iteration (n = 1000):

Framework Measurement
flecs 0.000574 filter_iter (1 table)
flecs 0.000664 filter_iter (10 tables)
flecs 0.001559 filter_iter (100 tables)
flecs 0.011740 filter_iter (1000 tables)

Query iteration (n = 1000):

Framework Measurement
flecs 0.000004 query_iter (1 table)
flecs 0.000004 query_iter (10 tables)
flecs 0.000004 query_iter (100 tables)
flecs 0.000004 query_iter (1000 tables)

Entity creation


Single entity creation (n = 1000000):

Framework Measurement
flecs 0.003269 ecs_new
flecs 0.058672 ecs_new_w_entity
flecs 0.064369 ecs_new_w_type
flecs 0.066868 ecs_new_w_entity (ctor)
flecs 0.074792 ecs_new_w_entity (OnAdd)
flecs 0.063430 ecs_new_w_entity (monitor)
flecs 0.068956 ecs_new_w_type (2 comp)
flecs 0.077648 ecs_new_w_type (4 comp)

Preallocated creation (n = 1000000):

Framework Measurement
flecs 0.046657 ecs_new_w_entity
flecs 0.047110 ecs_new_w_type
flecs 0.049588 ecs_new_w_type (2 comps)
flecs 0.061787 ecs_new_w_type (4 comps)
flecs 0.009149 ecs_bulk_new_w_entity
flecs 0.007643 ecs_bulk_new_w_type

Bulk creation (n = 1000000):

Framework Measurement
flecs 0.000002 ecs_new
flecs 0.018954 ecs_bulk_new_w_entity
flecs 0.019023 ecs_bulk_new_w_type
flecs 0.020610 ecs_bulk_new_w_type (2 comp)
flecs 0.019309 ecs_bulk_new_w_type (4 comp)

Adding components


Add one component (n = 1000000):

Framework Measurement
flecs 0.064989 ecs_add_entity (empty)
flecs 0.076069 ecs_add_entity (OnAdd)
flecs 0.067891 ecs_add_entity (monitor)
flecs 0.029025 ecs_add_entity (add again)
flecs 0.088422 ecs_add_entity (1 other)
flecs 0.101134 ecs_add_entity (2 other)
flecs 0.119015 ecs_add_entity (3 other)

Add one tag (n = 1000000):

Framework Measurement
flecs 0.069517 ecs_add_entity (empty)
flecs 0.033659 ecs_add_entity (add again)
flecs 0.088522 ecs_add_entity (1 other)
flecs 0.103929 ecs_add_entity (2 other)
flecs 0.117046 ecs_add_entity (3 other)

Add one component (preallocated) (n = 1000000):

Framework Measurement
flecs 0.046936 ecs_add_entity (empty)
flecs 0.027557 ecs_add_entity (add again)
flecs 0.070941 ecs_add_entity (1 other)
flecs 0.079378 ecs_add_entity (2 other)
flecs 0.095313 ecs_add_entity (3 other)

Add one component (staged) (n = 1000000):

Framework Measurement
flecs 0.105360 ecs_add_entity (total, empty)
flecs 0.038448 merge only
flecs 0.119983 ecs_add_entity (total, add again)
flecs 0.021220 merge only
flecs 0.148391 ecs_add_entity (total, 1 other)
flecs 0.029017 merge only
flecs 0.168018 ecs_add_entity (total, 2 other)
flecs 0.036202 merge only
flecs 0.192611 ecs_add_entity (total, 3 other)
flecs 0.041933 merge only

Add two components (n = 1000000):

Framework Measurement
flecs 0.074531 ecs_add_type (empty)
flecs 0.031332 ecs_add_type (add again)
flecs 0.098042 ecs_add_type (1 other)
flecs 0.113242 ecs_add_type (2 other)

Add one component bulk (n = 1000000):

Framework Measurement
flecs 0.001669 ecs_bulk_add
flecs 0.001662 ecs_bulk_add_entity
flecs 0.003990 ecs_bulk_add (to populated)
flecs 0.004264 ecs_bulk_add_entity (to populated)

Random access


Get (n = 1000000):

Framework Measurement
flecs 0.004140 ecs_get (empty)
flecs 0.009838 ecs_get (1 comp)
flecs 0.010496 ecs_get (2 comp)
flecs 0.010919 ecs_get (3 comp)
flecs 0.011384 ecs_get (4 comp)

Get cached (n = 1000000):

Framework Measurement
flecs 0.007030 ecs_get_ref (1 comp)
flecs 0.006682 ecs_get_ref (2 comp)
flecs 0.007045 ecs_get_ref (3 comp)
flecs 0.006976 ecs_get_ref (4 comp)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment