gpt4 book ai didi

c# - 响应式扩展源代码中的 NO_PERF 标志在做什么

转载 作者:太空宇宙 更新时间:2023-11-03 18:30:51 24 4
gpt4 key购买 nike

在 ReactiveExtensions 源代码中有大量代码在不同的实现之间切换,例如

https://github.com/Reactive-Extensions/Rx.NET/blob/master/Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/QueryLanguage.StandardSequenceOperators.cs

和一个片段

#if !NO_PERF
return new Distinct<TSource, TSource>(source, x => x, EqualityComparer<TSource>.Default);
#else
return Distinct_(source, x => x, EqualityComparer<TSource>.Default);
#endif

这个标志 NO_PERF 的目的是什么,使用它和不使用它编译的库在行为上有什么区别。

最佳答案

作为 Rx 团队的一员,我可以回答这个问题:

答案可以追溯到我们从 Rx 1.1 到 Rx 2.0 的变化。我们希望能够保留使用 AnonymouseObservable 的旧样式以防万一,但在大多数情况下,您需要性能增强的版本。

两者在性能上存在很大差异,在某些情况下更急于处理。您可以找到有关我们更改的更多信息 here .

关于c# - 响应式扩展源代码中的 NO_PERF 标志在做什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22680417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com