You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6中使用IAsyncEnumerable流式读取MongoDB大结果集仍内存占用过高的问题咨询

.NET 6中使用IAsyncEnumerable流式读取MongoDB大结果集仍内存占用过高的问题咨询

大家好,我最近在开发一个API应用,本来寄希望于用IAsyncEnumerable来流式返回MongoDB的查询结果,以此避免应用内存被大量数据占满,但实际运行下来内存还是蹭蹭往上涨,想请教下各位大佬:是我的写法有问题,还是我对.NET 6里的IAsyncEnumerable流式能力期望过高了?

我的MongoDB数据读取代码是这样的,用来返回IAsyncEnumerable<Record>:

public async IAsyncEnumerable<Record> GetAllRecords()
{
    var collection = GetCollection<Record>();
    var cursor = await collection.FindAsync(FilterDefinition<Record>.Empty);
    while (await cursor.MoveNextAsync())
    {
        foreach (var current in cursor.Current)
            yield return current;
    }
}

之后我直接在Controller里返回这个IAsyncEnumerable对象,但当API向外发送所有记录的时候,应用的内存占用还是一路飙升,完全没有达到我预期的流式释放内存的效果。

备注:内容来源于stack exchange,提问作者Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 11:59:37