While combining Silverlight and Citrix together doesn’t take full advantage of the Silverlight platform in some organizations Citrix is more than just an option, it is the standard. Recently, at my client there was a lot of hub-bub about memory consumption of Silverlight spiraling out of control thus making performance planning impossible for Silverlight applications to consumed within a Citrix environment.
We were asked the not so insignificant task to “certify” the Silverlight platform within the Citrix environment.
Below is a summary of what we uncovered.
The above graph illustrates the memory usage by a Silverlight client’s IExplorer.exe processes through out the day when compared with non-Silverlight clients. As you can see, we see arithmetic growth from the non-Silverlight clients’ memory consumption while Silverlight client memory remains relatively stable. While this chart provides some valuable insight into overall memory usage without further analysis on a per user consumption this result would be expected if we had more users logging onto non-Silverlight client applications over the course of the day. The chart below will shed some light on this subject.
The above graph illustrates the average memory usage across all users’ Silverlight client IExplorer.exe processes through out the day when compared with non-Silverlight clients. As you can see, the arithmetic growth that we saw from the non-Silverlight clients in our Total Memory Usage chart is consistent with what we see for each user. Thus, the earlier assertion that the arithmetic growth seen in Total Memory Usage could be indicative of an increase in active users and not an increase in per capita memory usage is disproven.
“Non-Silverlight” means ANY IExplorer.exe process where the Silverlight runtime is not detected. Our findings thusfar indicate that the non-Silverlight client sample is split between a small number of very high consuming instances of IExplorer.exe (very low performing web application) and a large quantity of very low consuming instances of IExplorer.exe (typical browser session).
We have come to the conclusion that the reported Citrix performance issues were not a caused by the Silverlight platform as a whole nor the Silverlight applications itself. Ironically enough, the true source of the memory consumption spiraling out of control was a very poor performing traditional web application.