加载wav文件或使用嵌入式资源的内存效率更高

本文关键字:内存 效率 资源 嵌入式 文件 wav 加载 | 更新日期: 2023-09-27 18:25:22

我需要在Winforms C#应用程序中使用一些75个(小).wav文件,我想知道哪个系统更高效(内存方面)——从文件加载.wav并播放声音还是使用嵌入式资源?

如果我使用file方法,我认为声音播放后内存会被释放。如果我使用资源,我相信这些资源直到。。。

加载wav文件或使用嵌入式资源的内存效率更高

嵌入资源仍然只是编译的程序集文件的一部分,并且在加载程序集时不会将其加载到内存中,而是根据需要加载。所以在记忆方面没有真正的区别。

如果wav嵌入到应用程序中,则资源会内置到.exe中,因此在需要时会加载到RAM中。当您"打开"资源时,数据通常会复制到一个新的RAM块中,因此您最终会得到两个副本(尽管在某些情况下,您可以直接使用资源流中的数据,而无需创建实际对象,从而避免第二个副本)。因此,文件可能是一种更"节省内存"的方法。

然而,请记住,即使在32位PC上,每个进程也可以使用2Gb,因此,除非您的应用程序对RAM有极高的要求,否则这种低效率是无关紧要的,您可能会发现嵌入的好处超过了可能的额外内存使用。