Hi,
We have built an application to use WinGrid to show data and then provided a feature to export the grid data to excel using UltraGridExcelExporter (Version used: 10.1)
The general performance of the export functionality for records greater than 25000 is slow and when the number is higher in the range of 40000 to 90000 we end up getting System.OutOfMemoryException.
Trying to isolate this problem, is this error and the performance anything to do with the client side memory or is there any limitation with ExcelExporter?
Also is there any stats related to performance of Export functionality for different size of records available for reference? This will be helpful to set a broad level expectations of the feature performance to users.
Looking at some of the older post of performance and out of memory exception i noticed few places the recomendation is to download latest hotfixes. There is one Service release for 10.1 on 15th Mar 2011, i will install this.
Any details related to the issue on how to go about addressing it will be helpful.
Exception Stack trace is as follow:
Process Name: mscorlibWin32 Thread Id: at System.Collections.Generic.Dictionary`2.Resize() at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at System.Collections.Generic.Dictionary`2.set_Item(TKey key, TValue value) at Infragistics.Excel.WorksheetCell.set_CellFormatProxy(WorksheetCellFormatProxy value) at Infragistics.Excel.WorksheetCell.get_CellFormatInternal() at Infragistics.Excel.WorksheetCell.get_CellFormat() at Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter.SetRegionRelativeToOrigin(UltraGridExporterHelper exportHelper, Rectangle rect, Object val, IWorksheetCellFormat cellFormat) at Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter.WriteValueCell(UltraGridExporterHelper exportHelper, UltraGridRow row, UltraGridColumn ugColumn, Rectangle valueCellRect) at Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter.ExportRowValuesCells(UltraGridExporterHelper exportHelper, UltraGridRow row) at Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter.WriteSingleRow(UltraGridExporterHelper exportHelper, UltraGridRow row) at Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter.ProcessSingleRow(UltraGridExporterHelper exportHelper, UltraGridRow row) at Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter.ProcessGridRowInternal(UltraGridExporterHelper exportHelper, UltraGridRow row, ProcessRowParams processRowParams) at Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExporterHelper.ProcessRow(UltraGridRow row, ProcessRowParams processRowParams) at Infragistics.Win.UltraWinGrid.RowsCollection.InternalTraverseRowsHelper(IUltraGridExporter exporter) at Infragistics.Win.UltraWinGrid.UltraGrid.Export(IUltraGridExporter exporter) at Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter.Export(UltraGrid grid, Worksheet worksheet, Int32 startRow, Int32 startColumn) at Infragistics.Win.UltraWinGrid.ExcelExport.UltraGridExcelExporter.Export(UltraGrid grid, Workbook workbook)
Thanks,
Narasimha
I believe it was recently determined that this sort of problem is also present in the ExcelExporter, which was not improved with the 11.1 changes mentioned above. Just to make sure that is indeed what you are experiencing, can you try to manually export a similar amount of mock data to an excel Workbook instance without the ExcelExporter. If you don't see the problem in that case, then it is the ExcelExporter which is using most of the memory.
Hi there
Our customers are also experiencing Out of Memory issues with ExcelExporter and the WinGrid.
Watching the app in task manager it grows steadily by about 200MB in size in memory while the transfer to Excel is occurring.
In our case we are transferring about 22k records to Excel and the resultant Excel file is about 20MB.
I was already on 11.1 so I can't tell you if there is any difference, but 200MB memory usage is definitely larger than I would expect - and larger than you would expect too by the sounds of things?
Hello,
Thank you for your understanding.
Please let me know if you have any other questions.
thanks for the update Mike.
A large number of performance and memory optimization have been made to the Excel code in the 11.1 development cycle. The Excel library is now very close to the performance and memory footprint of Microsoft Excel when opening and saving similar files. In addition, from the stack trace you have posted, I am very confident this will no longer be an issue for you with the 11.1 assemblies. Unfortunately, due to the amount of code changes required for these improvements, they were only made to the latest version of the code, so upgrading to the latest 10.1 SR will not help. You will have to wait for the 11.1 release.