【发布时间】:2019-07-18 17:33:00
【问题描述】:
正如标题所说,我有大量可用内存,但在处理跟踪和调用数据源上的属性时,我不断收到 OutOfMemoryExceptions。为什么会这样?
【问题讨论】:
正如标题所说,我有大量可用内存,但在处理跟踪和调用数据源上的属性时,我不断收到 OutOfMemoryExceptions。为什么会这样?
【问题讨论】:
ETL 文件格式的设计非常节省空间,并且还支持可选压缩。由于这些因素,从 .etl 文件中获取数据并将其转换为我们更有用的结构通常需要比文件的原始大小更多的内存。但是,可以采取两个步骤来降低 OutOfMemoryExceptions 的可能性:
不要使用不需要的数据源。即使您的代码没有调用数据源上的任何属性,只要通过调用其 Use 方法将其打开,数据源就会处理事件并准备数据以供使用。
确保您的程序作为 64 位进程运行。默认的 Visual Studio C# 项目设置是编译面向 AnyCPU 的程序,但更喜欢将其作为 32 位进程运行。在项目的构建属性中取消选中“首选 32 位”选项或将项目的构建配置切换为 x64 将使您的程序作为 64 位进程运行。
【讨论】: