我正在尝试基于经典工作池模型制作 Scala 应用程序服务器。鉴于:
- 机器有一个四核处理器
- 有一个调度器actor,它专门用于阻塞网络 I/O 来监听
- 工人演员都是非阻塞的。
corePoolSize 最大化性能的最佳价值是什么?理想情况下,当工作线程池的大小等于处理器内核的数量时,性能会最大化。所以在这种情况下,我猜最好的值是 5(调度程序为 1,工作程序为 4),或者我可以将值设置为 4 并覆盖调度程序参与者的调度程序方法,这样它就不会与工人共享线程池。
它是否正确?任何建议表示赞赏。谢谢!