Java Spring Webflux—只有一个内核时事件循环的性能

Java Spring Webflux—只有一个内核时事件循环的性能,java,performance,spring-webflux,Java,Performance,Spring Webflux,关于SpringWebFlux性能的一个小问题,但是关于只有一个内核的硬件。 我知道,你们可能会问,“为什么”,甚至“在2020年,如何在只有一个内核的机器上运行Springboot应用程序”,甚至是类似“不要这样做!” 我的问题是收集一些经验数据、理论基础和绩效结果 众所周知,SpringWebFlux是无阻塞的,它使用事件循环(而不是线程)来处理IO、计算等 但是,如果事件核心运行在只有一个核心的机器上,会发生什么,这会是某种灾难吗?也许回到线程模型?或者,IO性能可能会很糟糕,并以某种方式

关于SpringWebFlux性能的一个小问题,但是关于只有一个内核的硬件。 我知道,你们可能会问,“为什么”,甚至“在2020年,如何在只有一个内核的机器上运行Springboot应用程序”,甚至是类似“不要这样做!”

我的问题是收集一些经验数据、理论基础和绩效结果

众所周知,SpringWebFlux是无阻塞的,它使用事件循环(而不是线程)来处理IO、计算等

但是,如果事件核心运行在只有一个核心的机器上,会发生什么,这会是某种灾难吗?也许回到线程模型?或者,IO性能可能会很糟糕,并以某种方式倒退到再次阻塞

或者它不会有任何问题,一个内核仍然可以很好地处理所有的事情,只需将所有事件循环功能执行回它自己

多谢各位

但是,如果事件核心运行在只有一个核心的机器上,会发生什么,这会是某种灾难吗

没有“事件核心”,只有一个在标准线程上运行的“事件循环”。事件循环线程(最有可能在单核设置中)只是一个单线程,它将像其他线程一样调度在CPU内核上运行,但是,根据事件循环模型,该单线程将以非阻塞方式运行,处理所有应用程序的通信量

也许回到线程模型?或者,IO性能可能会很糟糕,并以某种方式倒退到再次阻塞

没有“退回”到线程模型,这样做没有多大意义。如果您正在努力在计算机上运行所有内容,而不需要每次请求线程上下文切换的开销,那么添加上下文切换回不会有任何帮助


(唯一的情况是在事件循环上有阻塞操作,但这与代码中的错误有关,与整个系统性能无关。)

“事件循环(而不是线程)”事件循环是一个线程。很好,别担心。非常感谢@KayamanMany非常感谢Michael