Hello,
I've been profiling an application which makes extensive use of the XamDataGrid. Next to DataBinding, the #2 most memory hungry element in the application is CellValuePresenter object. It is not releasing allocated memory and continues to grow with use. There is also a huge litter of WeakReferences created by it's use. Also bad because they should be getting collected.
Our business requirement insists this application be running and in use 24 hours /day. In it's current state, it normally last 3-4 hours without restarting - very undesirable for a highly available application.
Is Infragistics and others aware of this? Is there a fix or at least a way to minimuze or de-allocate the consumption?
Have others tried alternative products that do a better job of garbage collection?
Thanks,
Glenn
I am just checking if I can be of any further assistance on this matter.
Hello Glen,
Excuse me for the late reply. Usually the WPF garbage collection is relatively uncontrolled, meaning that even though a dispose request has been made it is not executed until the Garbage Collector decides it to be. In most cases this results in closed windows not being flushed. I was wondering if you are able to see the memory still held after the application is closed then there is something we might have missed in managing our resources.
Besides from that we have done, what we can, to lower the memory and CPU consumption to its lowest, however the CellValuePresenter’s and the functionality they need to support are taking its toe.
Another thing I can suggest is you try out our XamGrid control, which was recently transferred from our Silverlight to our WPF package in our 2011 volume 2 release. It is entirely different and actually performs better.
Please let me know if there is anything else I can do for you.
Petar,
Thanks, yes, I'm sure they would love to sell me a bit of consulting. Through some additional memory analysis, there is further evidence that the XamDataGrid is retaining up to 100% of the memory allocated, even when the view object is closed. Please review the attached image.
You'll note that of the 4 WPF grids I've swapped into the program, none of them show up on this list. They are certainly less functional out of the box, but do not retain their memory allocation when closed.
If the grid itself is incapable of releasing memory when closed, then it is quite unusable. Also note that out of the top 6 memory consumers, Infragistics holds 4 of the 6 positions. The significance of that can be found in the far right column which reads Retains Size with % of retained memory held. That is the most significant item.
When a view is closed or disposed, the Grid items should be gone. End of story. That's not happening.
Hello Glenn,
I see your determination, however we do not provide such service in our offices. I can suggest you contact our consulting department which is meant to deal any custom implementations and resolutions. I suppose that they can arrange a meeting that is most convenient for you. You can get in touché with them on: sales@infragistics.com . Please describe in details your requirement and of course you can refer this forum thread.
Please let me know if I can be of any further assistance.
Good recommendations but no impact. I began removing several of the grids and replacing with WPF grids. Additionally I am cutting down presentation anything in an effort to curb memory usage. Better but no where near manageable yet.
I understand you folks have a New Jersey office? Perhaps I can go there and spend a few hours showing the folks what's going on? The back end is Oracle, so it's nearly impossible to send you a working copy. I could send you the code simply for review if that helps.