0

我有一个在套接字上被阻塞的进程。当套接字中的输入变为可用时,该进程对输入进行解码,并且大多数时候除了更新内存结构之外什么都不做。定期输入会触发更复杂的分析,最终导致另一个连接上的传出消息。我想在后一种情况下最小化延迟,即最小化接收和发送之间的时间。我注意到的是,当有趣事件之间的时间增加时,延迟数字会差 2 倍。这可以归因于什么,我该如何改进它?我试图为我的进程保留一个 CPU,但我没有看到太大的改进。

4

1 回答 1

0

您应该尝试将过程“调整”为负值。我不详细了解 Linux 调度程序,但正常的策略是在进程无法使用其切片时减少时间切片(有时是时间片),反之亦然。这称为多级反馈策略。在您的情况下,获得一堆快速处理的事件可能会给该过程带来非常短的时间片。当一个“重要”事件发生时,它必须通过多次上下文交换来达到更长的切片。将“nice”值设置得足够高可能会给它所需的任何时间片。

不幸的是,“负面友好”在大多数系统中都需要超级用户权限。

于 2013-10-30T02:32:06.580 回答