代码如下:
console.time("Wav2DnnScoreEntry");
Wav2DnnScore.interface.Wav2DnnScoreEntry(13, ForwardProQualityArgv);
console.timeEnd("Wav2DnnScoreEntry");
console.time("HVite_entry");
HviteDnn.interface.HVite_entry(21, AlignProQualityStdArgv);
console.timeEnd("HVite_entry");
console.time("HVite_entry");
HviteDnn.interface.HVite_entry(21, AlignProQualityExtArgv);
console.timeEnd("HVite_entry");
以上三个均是对C++库的调用,每个函数的运行时间均为500ms,串行执行需1500ms,求指教:能不能通过并发提高速度呢?
既然是 C/C++ 的话,可以通过 libuv 提供的 uv_work 方法来将方法改为异步通过线程池执行。JavaScript 层面通过 Promise.all() 来进行并发调度就可以。
@JacksonTian 目前我已经全部通过child_process改为多进程了,但是promise.all是通过new promise的顺序来先后执行的,又把我难住了。。