Benchmarking tilesets (traversal.selectTiles, requireTiles, processTiles peformance)

I would like a way to estimate how tileset structure affects performance of my application (where there can be 100+ tilesets active at the same time, each representing a layer/type of objects for an area/map).
My first idea was decorating certain critical functions like tileset traversal (passOptions.traversal.selectTiles function), requisition of content (requestTiles function in Cesium3DTileset) and processing of tiles (processTiles function in Cesium3DTileset). Unfortunately the last 2 functions are private and I can think of no way to monitor their execution which does not involved modifying cesium source. Does anyone have any ideas how to properly watch those functions, or other ways to properly benchmark their performance?

@ygb Welcome to the community! One approach to try is to edit the source files and insert timers before and after function calls that you are interested in. We don’t expose a way to track these otherwise.

Thank you, Eli!
This is the approach I decided to take in the end.
I’ve created an alternative cesium3dtileset which I use along with standart one when I want to benchmark performance of a particular dataset.

1 Like