Our ECClassHierarchyInspector implementation is based on ECSchemaProvider. We create the provider using SchemaContext and ECSchemaRpcLocater, which always downloads the full schema from the backend. All of this means that simply checking is class X is of class Y required fully downloading schemas of those two classes. And some schemas can be massive, taking up to 8 seconds or more to download.
We should come up with a way to improve this. Maybe we could pre-load the schemas. Or, if we don't yet have the schema on the frontend, issue the schema request and an ECDbMeta query request at the same time and use the latter for the immediate response.
Here's an example of getting the first Models tree branch performance. The green is our baseline, the brown - schemas are preloaded before the test.

Our
ECClassHierarchyInspectorimplementation is based onECSchemaProvider. We create the provider usingSchemaContextandECSchemaRpcLocater, which always downloads the full schema from the backend. All of this means that simply checking is classXis of classYrequired fully downloading schemas of those two classes. And some schemas can be massive, taking up to 8 seconds or more to download.We should come up with a way to improve this. Maybe we could pre-load the schemas. Or, if we don't yet have the schema on the frontend, issue the schema request and an
ECDbMetaquery request at the same time and use the latter for the immediate response.Here's an example of getting the first Models tree branch performance. The green is our baseline, the brown - schemas are preloaded before the test.
