Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory 电子表格工具——通过复制和粘贴生成大型报告似乎需要占用大量内存和处理器_Memory_Scalability_Processor_Spreadsheetgear - Fatal编程技术网

Memory 电子表格工具——通过复制和粘贴生成大型报告似乎需要占用大量内存和处理器

Memory 电子表格工具——通过复制和粘贴生成大型报告似乎需要占用大量内存和处理器,memory,scalability,processor,spreadsheetgear,Memory,Scalability,Processor,Spreadsheetgear,我正在尝试生成一个基于工作簿的大型报告,其中包含3个支持工作表(分别为10012000行和12000行),以及一个最终输出表(所有输出表均基于公式),最终以100行表示大约120个实体。我生成一个模板范围,并在粘贴每个新范围后复制并粘贴它,替换实体ID单元格。它工作正常,但我注意到IIS Express进程中的内存使用量约为500mb,处理器使用率也达到了100% 以这种方式生成工作簿有什么指导原则吗?至少在内存利用率方面,可以与Excel比较一下打开工作簿所使用的内存量。例如,如果要在Exce

我正在尝试生成一个基于工作簿的大型报告,其中包含3个支持工作表(分别为10012000行和12000行),以及一个最终输出表(所有输出表均基于公式),最终以100行表示大约120个实体。我生成一个模板范围,并在粘贴每个新范围后复制并粘贴它,替换实体ID单元格。它工作正常,但我注意到IIS Express进程中的内存使用量约为500mb,处理器使用率也达到了100%


以这种方式生成工作簿有什么指导原则吗?

至少在内存利用率方面,可以与Excel比较一下打开工作簿所使用的内存量。例如,如果要在Excel和“SpreadsheetGear 2012 For Windows”应用程序(可在“开始”菜单下的SpreadsheetGear文件夹中找到)中打开最终报告,任务管理器在内存消耗方面会衡量这些应用程序的内存消耗情况?这可能会让您了解在实际报表生成过程中看到的内存利用率是否异常高(例程是否有大量额外开销?),或者仅仅是在生成工作簿的情况下

就CPU利用率而言,这一点更难确定,而且肯定取决于您的硬件以及代码中的实现细节。如果您可以使用此工具,那么针对您的例程运行VS分析器肯定会很有趣。一般来说,CPU时间可能分为两大类:用于“构建”工作簿的CPU周期和用于“计算”工作簿的CPU周期。更好地确定哪一个控制着CPU可能会有所帮助。一种方法是,如果可能的话,确保在实际生成工作簿之前不会进行计算。事实上,避免任何不必要的计算可能会加快速度……但这取决于工作簿。您可以通过设置IWorkbookSet来避免计算。在完成此过程之前,不要调用IWorkbook的任何“计算”方法(//)。如果您也无法访问探查器,可以设置一些计时器、Console.WriteLines并监视任务管理器,以查看在例程的不同部分中CPU的波动情况。如果运气好的话,你也许能够更好地找出日常工作中花费时间最多的部分