我收到OutOfMemoryExceptions,但是我的跟踪文件比可用内存小得多

时间:2019-07-18 17:33:00

标签: .net-traceprocessing

正如标题所述,我有大量的可用内存,但是在处理跟踪和调用数据源上的属性时,我总是收到OutOfMemoryExceptions。为什么会这样?

1 个答案:

答案 0 :(得分:1)

ETL文件格式旨在节省空间,并且还支持可选压缩。由于这些因素,从.etl文件中获取数据并将其转换为更有用的结构时,通常需要比文件原始大小大得多的内存。但是,可以采取两个步骤来减少OutOfMemoryExceptions的可能性:

  1. 不要使用不需要的数据源。即使您的代码未调用数据源上的任何属性,只需通过调用其Use方法将其打开也将导致数据源处理事件并准备使用数据。

  2. 确保您的程序作为64位进程运行。 Visual Studio C#项目的默认设置是编译针对AnyCPU的程序,但希望将其作为32位进程运行。取消选中项目的“构建”属性中的“首选32位”选项或将项目的构建配置切换为x64,将使您的程序以64位进程的形式运行。

相关问题