Section Report - memory management issue

Posted by: grapecity on 22 January 2018, 12:08 pm EST

    • Post Options:
    • Link

    Posted 22 January 2018, 12:08 pm EST

    Hello,

    We are using AR 12, Version 12.0.11689.0 for our exports (Section and Page). There appears to be a problem with AR libraries (specifically the SectionReport.Run() and XlsExport.Export(…) method calls) where AR is consuming all of the system memory (this depends, of course, on dataset size) – once the system memory has been consumed our exports receive Out of memory exceptions.

    For example, exporting a simple report which has 3 columns and 275 K of rows of data is consuming 3 GB of RAM during the export process (simple watch using task manager). The size of the underlying data file “TestDataset_250k_rows.xml” is 51 MB and the exported Excel output size is 5 MB. Consuming 3GB of RAM to produce a 5 MB file is causing our clients a lot of problems.

    Note : Our clients have more complex reports then the above sample with more columns and more data.

    I ran the Performance Profiler in Visual Studio 2015, analyzed the report export, and noticed AR (the Run and Export methods above) are reported by the tool as consuming the memory. (See the attached report for more information.)

    Please run the attached sample project, click on “Excel Export” button and notice the memory usage in task manager.

    We also notice similar issues in PDF export as well.

    Is this an AR issue? Can you please take a look the code in my sample project and let me how to reduce the memory usage and/or the best way to make the AR export calls.

    Thanks,

    Anwar

    WSExport.zip

  • Posted 23 January 2018, 10:33 am EST

    Hello,

    I am able to replicate the problem at our end. I have escalated this to the development team(tracking id 253395) and will revert you back once have any information from them.

    Thanks

    Mohit

  • Posted 29 January 2018, 10:50 am EST

    We currently have this deployed to our customers and it is causing quite a number of problems and we need this escalated as our customers are escalating their issues with our support.

    • Is there any workaround available for this?
    • Is there any way we can adjust or calling code to avoid these problems?
    • What is the ETA for a fix?

    John Miller

    IT Manager of Engineering

  • Posted 30 January 2018, 12:57 am EST

    Hello,

    We are extremely sorry for the inconvenienced caused.

    I have raised the issue on the high priority and will revert you back once have any information from them.

    Thanks,

    Mohit

  • Posted 31 January 2018, 9:55 am EST

    I will be contacting your executive team shortly if I don’t get a proper update today within the next few hours. This is completely unacceptable that we can’t even get a simple update. Defects happen, I understand, but your product has caused our clients to experience major issues, and they are still in the dark about what is happening to fix this. I need an update, ASAP.

    I am already in a position where I can no longer hide what the problem is, and that means I am exposing you (Grapecity) as the problem. I do not want to create any issues for you, but I will certainly not accept total blame for this issue and will be making sure to communicate across industries where our problem lies if I don’t get a real update within a few hours. Feel free to call me at 6108164486.

  • Posted 31 January 2018, 11:03 am EST

    Hello,

    Our developer teams are researching on your issue. Hence, we can’t provide ETA until research is not completed.

    Sorry once again for the inconvenienced caused.

    Thanks,

    Mohit

  • Posted 1 February 2018, 3:47 am EST

    Hello ,

    if application is unable to handle all rendering requests at the same moment, would not it be better to implement the queue to render reports one by one?

    Thanks,

    Sergey Romanov.

  • Posted 1 February 2018, 8:12 am EST

    Anwar ,

    could you please check how your project works without “using” operator?

    
    var excelExport = new XlsExport();
    ...
    excelExport.Export(doc, reportStream);
    ...
    excelExport.Dispose();
    GC.Collect();
    GC.WaitForPendingFinalizers();
    
    

    instead of

    
                        using (var excelExport = new XlsExport())
                        {
    ...
    excelExport.Export(doc, reportStream);
    ...
    }
    
    

    Thanks,

    Sergey Romanov.

Need extra support?

Upgrade your support plan and get personal unlimited phone support with our customer engagement team

Learn More

Forum Channels