I need to load a huge amount of data in DXGrid(WPF) , I know that i have to use XPInstantFeedbackSource or XPServerCollectionSource to achieve the requirements, but dont know which one to use , any idea on cons and pros?
1 Answers
Both the XPInstantFeedbackSource and the XPServerCollectionSource are server mode data sources. In this mode a data-aware control sends requests to a bound data source to retrieve appropriate portions of data when required. There are two distinct server modes that differ in the way controls interact with bound data sources:
- Regular Server Mode (or synchronous server mode). In a regular server mode, the control, after sending a request, always waits until the bound data source returns data. Therefore, the GUI may freeze momentarily, and may not respond to an end-user's actions until data is retrieved. To activate this feature, use specially designed data sources - LinqServerModeSource, PLinqServerModeSource, EntityServerModeSource or WcfServerModeSource shipping with the eXpress Persistent Objects Library.
- Instant Feedback Mode (or asynchronous server mode). After sending a request to a data source, a control doesn't wait, doesn't freeze the GUI, and continues responding to user actions. Thus, users are able to work with the control (e.g. sort, filter and group data, resize columns, etc.) and other controls on the form, while data is being retrieved in a background thread. To activate this feature, use specially designed data sources - LinqInstantFeedbackSource, PLinqInstantFeedbackSource, XPInstantFeedbackSource, EntityInstantFeedbackSource or WcfInstantFeedbackSource shipping with the eXpress Persistent Objects Library.
Important note: all the Instant Feedback Sources are a read-only data sources. To enable data editing in server mode, use the Server Mode Sources with the AllowEdit property set to true.
PS. As in regular data-binding modes, in server modes, bound controls allow data to be edited, sorted, grouped and filtered. To learn about the limitations of server modes, see Server Mode Limitations.
P.P.S. Please also take a look at the following article: Binding to Data
UPDATE:
Real CPU usage of InstantFeedBack UI(tm) (Notebook, Intel Core i5, 2.67 GHc, 8gb RAM, NVIDIA GeeForce GT 425M, Win7x64):
The total CPU Usage strongly depends only of WPF rendering subsystem performance (wpfgfx_v0400.dll).

- 17,677
- 1
- 30
- 53
-
Thanks Dmitry, I have made a test in WPFwith DXGrid with following issues: 10000 records loaded by XPCollection and XPInstantFeedbackSource. XPCollection works good bu takes a lot of time and consumed a lot of memory, XPInstantFeedbackSource is good bu seems to have a bug!! after loading data it still consumes a log of CPU usage (7 to 40)% (tested on Windows XP, 7 32bit and 7 64bit), any idea ? – Ehsan Zargar Ershadi Jan 31 '12 at 05:17
-
The grid powered by XPInstantFeedbackSource takes CPU only on asynchronous data loading caused by data-aware operations or scrolling and on updating visible cells after these operations/scrolling completed. Thus the CPU usage is caused in general by your data server. The completed operations/scrolling does not use CPU at all. I have tried 1.000.000 records on local MSSQLServer - fast scrolling/sorting/groupping takes up to 25% CPU and then falls down to default 1-2% (notebook, Core i5, 8gb RAM, Win7 x64) – DmitryG Jan 31 '12 at 11:47
-
Thanks Dmitry, Your answer is right but i do not agree with you on the my case, the comment you made is what i do expect, but unfortunately it is not working on any machine that i tried. I did not make up my own code , i rather used the exact GridDemo.exe file ported by Devexpress 11.2.5 in WPF. I have updated the question and added the screen shot. – Ehsan Zargar Ershadi Jan 31 '12 at 13:26
-
I have updated my answer with the real CPU usage illustrations (I'm using the latest [DX online demo](http://demos.devexpress.com/DemoCenter/#WPF/)). As far as I can see - all right with performance. If you see the performance downfalls on your system, firstly check graphics system capabilities(starts from [rendering tier][19]), available for your application. – DmitryG Feb 01 '12 at 09:15
-
DmitryG don't give up, I know this discussion is getting log , but I'm getting to a point, yet i need you to make me clear what do you mean by [rendering tier][19] ? I told my customer to change it's graphic card and make a new test. are there any settings in WPF to force it to use GPU instead of CPU ? – Ehsan Zargar Ershadi Feb 01 '12 at 10:30
-
Sorry for [rendering tier][19] it's my markdown-formatting error). I mean the [following article](http://msdn.microsoft.com/en-us/library/ms742196.aspx). – DmitryG Feb 01 '12 at 12:09