Sleep 可以改成信号量,防止部分无意义唤醒造成的线程调度开销
JarvisGG opened this issue · 8 comments
JarvisGG commented
Sleep 可以改成信号量,防止部分无意义唤醒造成的线程调度开销
YummyLau commented
信号量阻塞可能导致无响应,由于是前台进程,所以动态参与竞争可以解决无响应,损耗其实可以忽略不计。
JarvisGG commented
sleep + 死循环还是会无响应啊(而且 10ms 是怎么定出来的,我这边看 trace 很频繁)。不理解是怎么解决的。求教。
yuzhiqiang1993 commented
我也没太理解为啥要sleep 10 ms,常规做法不都是countdownLatch之类的吗,请大佬指点
yuzhiqiang1993 commented
我在抓取trace文件的时候发现两处主线程休眠10ms的地方(什么事都没干,也没有需要等待执行完成的依赖任务,就是干等)。应该就跟此处的sleep 10ms有关,如果锚点较多,空等10ms的次数可能就会增加,有较大几率拉长启动时间。这个地方改成countdownLatch之类的方案应该能避免出现空等10ms的情况。
JarvisGG commented
目前我改成信号量了,wait notify。准备上线看看
YummyLau commented
@yuzhiqiang1993 @JarvisGG 大家反馈的问题,已经在测试了。最近会有反馈同步。
EdminhPeng commented
@yuzhiqiang1993 @JarvisGG 大家反馈的问题,已经在测试了。最近会有反馈同步。
@YummyLau 大佬,这个优化目前是什么进度呢?什么时候更新版本?
LinYYY commented
v1.1.5已调整