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
Hello Glen,
I have been looking into your issue and was hoping you could provide us with a more detailed description of your project so I can do more detailed research on your specific scenario.
Thanks in advance. Looking forward to hearing from you.
No response from you on the previous? Do you want me to send you anything specific? Project is VS 2008. I am using roughly 7 XamDataGrids in 1 application. As indicated the CellValuePresenter is the biggest memory hog on the system. Taking more than Outlook or any other application running.
The second hungriest object is the DataBinding object. I expect Infragistics is leveraging the WPF DataBinding library and therefore controls the number of objects in this group.
Both are having a huge impact on the application.
I’ve read the technical document on limiting attributes, formatting, the use of Auto on column etc. All negligible in this case.
If the themes and formatting impact your application to that degree, then it’s not really worth using.
Time to look for another product?
Hi Glenn,
It sounds like you are using UnboundFields with Binding settings. This might account for the binding object growth. I'm not sure why the CellValuePresenter's keep growing though.
Can you supply a sample app so we can profile it and see what might be happening?
Thanks
I am just checking if I can be of any further assistance on this matter.
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.