使用响应式编程,例如,Java 和 Project Reactor在处理慢速 IO 或想要将结果流式传输回最终用户时非常有意义。您编写的代码往往看起来更简洁 - 类似于使用函数式编程和流时 - 但您也被迫以不同的方式编写代码,这让刚接触该概念的程序员的生活更加艰难。
我想知道从一般的性能角度来看使用它是否有意义?如果程序除了一些屏幕输出(例如计算无限 PI 数或斐波那契数列)之外没有任何 I/O,它不会减慢您的计算速度吗?还是您的代码清洁度的提高使它付出了很小的代价?
最佳答案
这取决于您要解决的问题 - 但如果您仅从严格的性能角度来看呢?可能不是,但是...
- 每个新概念/范式在开始时都被认为是困难的。
总是很难改变一个人的思维方式来吸收
观念转变。 Reactive
不应该解决性能问题(除非你做了很多 阻塞),但由于异步消息驱动的架构,提高了系统的整体响应能力/可扩展性/弹性。- 通过使用声明式方法,您可以实现真正的控制反转(是的,这不仅仅是依赖注入(inject))使用响应式(Reactive)编写的代码 方法看起来不同但更简单因为你抽象出了处理异步计算、线程管理、调度、并行数据流的组合、背压等,不需要自己处理(想象一下稍后重构)
所以,经典的异步方式是处理慢IO的一种方案。响应式(Reactive)方法远不止于此。
关于java - 在不处理慢速 IO 时,从性能的角度来看使用响应式编程是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45343289/