栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

是什么使Enum.HasFlag这么慢?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

是什么使Enum.HasFlag这么慢?

有谁知道Enum.HasFlag的内部原理,为什么它这么慢?

实际检查只是简单的签入

Enum.HasFlag
-这不是问题。话虽如此,它比您自己的位检查要慢…

造成这种速度下降的原因有两个:

首先,

Enum.HasFlag
进行显式检查,以确保枚举的类型和标志的类型都是相同的类型,并且来自相同的枚举。这张支票有一些费用。

其次,有一个不幸的箱和值的拆箱一次转化的过程中

UInt64
发生的内部的
HasFlag
。我认为,这是由于必须
Enum.HasFlag
与所有枚举一起使用,而与基础存储类型无关。

话虽如此,它有一个巨大的优势

Enum.HasFlag
-它可靠,整洁,并使代码非常明显和富有表现力。在大多数情况下,我认为这值得付出成本-
但是,如果您在性能非常关键的循环中使用它,则值得自己检查一下。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/573235.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号