加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#中迭代器的内存使用情况

发布时间:2020-12-15 18:05:59 所属栏目:百科 来源:网络整理
导读:在C#中使用大量迭代器对内存使用有什么影响?让我们假设一个执行数千个foreach循环的程序 – 每个循环是否通过调用GetEnumerator在堆上分配一个临时对象? CLR是否执行任何类型的优化(例如,IEnumerator对象的堆栈分配)?或者这根本不是一个甚至不用担心的重
在C#中使用大量迭代器对内存使用有什么影响?让我们假设一个执行数千个foreach循环的程序 – 每个循环是否通过调用GetEnumerator在堆上分配一个临时对象? CLR是否执行任何类型的优化(例如,IEnumerator对象的堆栈分配)?或者这根本不是一个甚至不用担心的重要问题?

解决方法

在大多数情况下,这根本不足以担心.正如埃里克指出的那样,在某些情况下这可能很重要,但根据我的经验,这些情况相当少.

如果你正在做成千上万的foreach循环,大概是你在这些循环中做实际的工作.这几乎肯定比迭代器本身重要得多.

注意,在数组上使用foreach(在编译时称为数组),不使用IEnumerable< T>无论如何 – 它使用直接索引.我不会基于此更改我的代码.

与以往一样,如果您关注性能,则需要对其进行测量并对其进行分析.瓶颈几乎从未像你期望的那样.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读