.net BitArray.Get 性能问题
.net BitArray.Get performance issue
我有一个 asp.net 应用程序并试图优化它的性能。我发现 BitArray.Get 方法 performance 有一个问题。它的执行时间 从 100 到 250 毫秒 。实在是太过分了。此方法在 IEnumerable.FirstOrDefault 内部调用。知道为什么会发生这种情况以及如何对其进行优化吗?
更新
此方法调用出现在 EF 实现过程中。来自同一跟踪的另一个示例:
还有其他方法处理持续时间仅为 1ms 的示例。
您误解了数据。
在你的第二张图片中,BitArray.Get()
花费的时间大约是第一张图片的 3 倍,调用次数也是大约 3 倍(~3.1mio 与 ~1.2mio)。因此我得出结论,以毫秒为单位的时间反映了这数百万次调用,而不仅仅是一次调用!在这两种情况下,每次调用的时间约为每次调用 200ns(218 和 201 ns)。只有 8.4% 的差异。这非常一致。
BitArray.Get()
比您想象的快 ~ 1 mio 倍!
我有一个 asp.net 应用程序并试图优化它的性能。我发现 BitArray.Get 方法 performance 有一个问题。它的执行时间 从 100 到 250 毫秒 。实在是太过分了。此方法在 IEnumerable.FirstOrDefault 内部调用。知道为什么会发生这种情况以及如何对其进行优化吗?
更新
此方法调用出现在 EF 实现过程中。来自同一跟踪的另一个示例:
还有其他方法处理持续时间仅为 1ms 的示例。
您误解了数据。
在你的第二张图片中,BitArray.Get()
花费的时间大约是第一张图片的 3 倍,调用次数也是大约 3 倍(~3.1mio 与 ~1.2mio)。因此我得出结论,以毫秒为单位的时间反映了这数百万次调用,而不仅仅是一次调用!在这两种情况下,每次调用的时间约为每次调用 200ns(218 和 201 ns)。只有 8.4% 的差异。这非常一致。
BitArray.Get()
比您想象的快 ~ 1 mio 倍!