Open WALL-E opened 7 years ago
要缓和反应式的瓶颈效应,而又不引入同步I/O和多线程的复杂性和开销,前摄式I/O模型常常是一种可伸缩性更好的途径。该模型允许应用用过以下两个阶段来执行I/O操作:
前摄式I/O模型的两个阶段在本质上是反应式模型中的两个阶段的反转,应用在反应式模型中:
除了通过异步性来改善应用的可伸缩性,取决于平台的异步I/O的实现,前摄式I/O模型还可以提供其他好处。例如,如果多个异步I/O操作可被同时发起,并且各个操作带有扩展信息,比如用于文件I/O的文件位置,那么,OS就可以优化其内部的缓冲区策略来避免无谓的数据复制。它还可以通过重新安排各个操作的次序来优化文件I/O, 使磁盘头移动降至最低,并且/或者增加缓存的命中率。
摘自-《C++网络编程,卷2》基于ACE和框架的系统复用
Reactor vs Proactor
要缓和反应式的瓶颈效应,而又不引入同步I/O和多线程的复杂性和开销,前摄式I/O模型常常是一种可伸缩性更好的途径。该模型允许应用用过以下两个阶段来执行I/O操作:
前摄式I/O模型的两个阶段在本质上是反应式模型中的两个阶段的反转,应用在反应式模型中:
除了通过异步性来改善应用的可伸缩性,取决于平台的异步I/O的实现,前摄式I/O模型还可以提供其他好处。例如,如果多个异步I/O操作可被同时发起,并且各个操作带有扩展信息,比如用于文件I/O的文件位置,那么,OS就可以优化其内部的缓冲区策略来避免无谓的数据复制。它还可以通过重新安排各个操作的次序来优化文件I/O, 使磁盘头移动降至最低,并且/或者增加缓存的命中率。
摘自-《C++网络编程,卷2》基于ACE和框架的系统复用