我知道 Vibe.D 的实现是基于 Fibers。但我不知道 Vibe.D 处理的高负载情况如何。是 Vibe.D 中的调度程序在多个线程上分配纤程还是只为所有纤程分配一个线程?
这个考虑非常重要,因为即使使用 Fibers 的高效率,也浪费了大量的 CPU 时间,只不过是使用一个线程来处理所有传入的请求。
我知道 Vibe.D 的实现是基于 Fibers。但我不知道 Vibe.D 处理的高负载情况如何。是 Vibe.D 中的调度程序在多个线程上分配纤程还是只为所有纤程分配一个线程?
这个考虑非常重要,因为即使使用 Fibers 的高效率,也浪费了大量的 CPU 时间,只不过是使用一个线程来处理所有传入的请求。
他们的首页说是:
此页面有详细信息
http://vibed.org/features#multi-threading
传入连接的分布式处理
可以指示 HTTP 服务器(以及任何其他基于 TCP 的服务器)跨线程池的工作线程而不是在主线程中处理传入连接。对于不需要在进程中的不同连接之间共享状态的应用程序,这可以随着系统中的内核数线性增加每秒的最大请求数。使用 HTTPServerOption.distribute 或 TCPListenOptions.distribute 设置启用此功能。