31 views
in GUI Development by
We are currently doing an experiment in our existing Embedded wizard code and wanted to measure the time of each screen when loaded - to improved the performance
Is there a way to know when a component finished loading? Is there a method that invoke automatically when a component in a screen loaded? that time we can add code to measure it.
Typical components in a screen are text labels and images

Embedded Wizard 9.20

1 Answer

0 votes
by

Hello ialonzo,

the components are only instantiated, they are not loaded. However, when the component displays images or text, the corresponding bitmap and font resources need to be loaded.

The more complex a component, the more other components and views embedded inside it, the more time it may need to finalize the initialization.

Embedded Wizard manages bitmaps and fonts in internal caches. The more bitmaps and fonts already existing in cache the faster the loading. The timing depends thus on the cache content.

Therefore there is no (at least simple) way to measure the initialization/loading time.

Is there a way to know when a component finished loading?

The method Init of the respective component is executed at the end of the initialization of the component and all its embedded sub-components and views. This event, however, may not necessarily signal that everything is finished. Depending on the content of the component several delayed updates may be still outstanding.

To analyse performance behaviour, Embedded Wizard Runtime Environment and its Graphics Engine implement performance counters. They track the time needed to e.g. load bitmaps, etc. I'm not sure whether it can help you ... Anyway, the performance counter are per default inactive. To use them you have to rebuild the complete source code of Runtime Environment and Graphics Engine with particular compiler settings. The usage of the performance counters is thus limited to customers licensing the Professional Edition. See also Function EwPrintPerfCounters()

If you want use the performance counters, note that they depend on a very precise time base. This information is not always available on every target system. Ensure the function EwGetPerfCounter() in the module ewextrte.c is correctly implemented providing the precise time information.

I hope it helps you further.

Best regards

Paul Banach

Embedded Wizard Website | Privacy Policy | Imprint

...