在WPF中设置绑定时,显式指定OneWay绑定是否有性能优势?

Kil*_*fer 10 data-binding wpf

我正在研究的一个项目正在遭受一些轻微的性能问题.我们的团队正在进行许多小改进,以实现更大的性能提升.我们已经设法通过进行一些更明显的更改来帮助应用程序,我们已经研究了数据绑定以提供一些额外的改进.我知道默认绑定模式是TwoWay,但我们的大多数绑定都不需要TwoWay绑定.是否值得我们花时间明确指定模式为OneWay,我们接受了默认值?

Tim*_*res 6

抱歉,第一个版本 100% 错误(谢谢,@Jeffora)。我把它留在这里,否则评论就没有意义了。

单向绑定不需要与源建立连接来侦听更改通知,因此它需要较少的内存,但就速度而言,我不认为有什么区别。

第二版:OneWay 和 TwoWay 绑定都会订阅源的更改,以便更新目标属性。因此,性能差异在于源属性的更新,这可能会产生影响,具体取决于更新发生时软件的其余部分执行的操作。

如果性能至关重要并且您的方案不需要目标更新,则使用 OneTime 绑定可能是一种选择。

我借此更正的机会询问您是否对您的应用程序进行了分析,以便找到热点。80/20 规则(或事件 90/10)非常常见,即少量代码占用了大部分时间。在不知情的情况下,优化工作可能不会给您带来任何好处。

  • 单向绑定仍会侦听源以获取更改通知 - 一次性绑定则不会。 (3认同)