Problem: Add in process takes a long time to load in the host
process. Hence the host process seems to be hung till the add in process is
completely loaded. This issue becomes more prominent if the add in process is
responsible for displaying graphics in the host process.
Analysis: On analysis we found that the add in process was taking a lot of
time to load during initializing itself. The add in process was loading both
managed and un-managed code. We tried to make the loading of the process faster
by using dependency injections and late binding mechanism. This improved the
loading time significantly but still it was not enough.
Solution: Then we came up with the peer process idea. That is by
default one add in process will always be available as standby for the host
process to load. Host process would fork another add in process and use the
current running add-in process for its usage. If the add-in process crashes due
to some reason, another process would be launched on its behalf. This along
with asynchronous calls and dependency injection reduced the call up time of the
graphics in the add-in process significantly.
Comments
Post a Comment