循环的节点工作者在第一次和第二次迭代之间速度较慢



我有一个包含for循环的方法,并且我有调用该方法的主进程和子进程。

20404 create:  2022-01-14 05:44:10.073
20404 create:  2022-01-14 05:44:10.075
20404 create:  2022-01-14 05:44:10.077
20404 create:  2022-01-14 05:44:10.077
send: 2022-01-14 05:44:10.078
send: 2022-01-14 05:44:10.079
send: 2022-01-14 05:44:10.079
16228 get  2022-01-14 05:44:10.081
11976 get  2022-01-14 05:44:10.081
9692 get  2022-01-14 05:44:10.082
11976 create:  2022-01-14 05:44:10.087
9692 create:  2022-01-14 05:44:10.087
16228 create:  2022-01-14 05:44:10.087
16228 create:  2022-01-14 05:44:10.113
9692 create:  2022-01-14 05:44:10.114
16228 create:  2022-01-14 05:44:10.116
11976 create:  2022-01-14 05:44:10.116
9692 create:  2022-01-14 05:44:10.117
16228 create:  2022-01-14 05:44:10.119
11976 create:  2022-01-14 05:44:10.121
11976 create:  2022-01-14 05:44:10.123

以上是日志,send是主进程向子进程发送指令的时候。

前四行从主流程中打印出来,每次迭代之间平均2ms

get是子进程获得指令的时间。

第一个数字是进程id。如您所见:

11976 create:  2022-01-14 05:44:10.087
9692 create:  2022-01-14 05:44:10.087
16228 create:  2022-01-14 05:44:10.087
16228 create:  2022-01-14 05:44:10.113
9692 create:  2022-01-14 05:44:10.114
16228 create:  2022-01-14 05:44:10.116

与其余时间间隔相比,这两次迭代之间的时间间隔是巨大的。你知道为什么会这样吗?

当我第一次创建子进程时,第一次运行总是很慢,所以我必须发送一些伪数据,使它在收到实际数据之前运行几次。这样,当实际的请求数据进入时,迭代之间的时间间隔就会变得很小并且一致。也许这只是一个节点问题

最新更新