我有一个用 C# 编写的 TCP 服务器来处理发送给它的 POST 数据。目前它工作正常,除非大量数据(即大于 1GB)被发送到它然后它耗尽内存(我将它全部存储在内存中作为字节数组(以 List DTO 为中介))。对于大文件,我现在流式传输到磁盘,然后传递文件名,目的是从磁盘流式传输。
目前我所有的例程都是为了期待字节数组而编写的,事后看来,这有点短视。如果我只是将字节数组转换为内存流,它会使内存使用量翻倍吗?我认为重写我的代码以处理内存流将允许我在从磁盘读取流时重新使用它?
很抱歉这些愚蠢的问题,我不确定 c# 何时获取数据副本或何时获取引用。