feat: 优化扫描性能,防止睡死
This commit is contained in:
parent
6c6995d2dd
commit
0eb4da3bcd
|
|
@ -49,6 +49,7 @@ func (s *Scanner) scanLoop() {
|
|||
|
||||
func (s *Scanner) performScan() {
|
||||
log.Println("[扫描器] 开始新一轮全盘扫描")
|
||||
fileCount := 0
|
||||
|
||||
for _, root := range s.scanPaths {
|
||||
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
|
||||
|
|
@ -60,10 +61,15 @@ func (s *Scanner) performScan() {
|
|||
}
|
||||
|
||||
if err != nil {
|
||||
log.Printf("[扫描器] 访问错误: %v", err)
|
||||
return nil
|
||||
}
|
||||
|
||||
s.checkCPUAndSleep()
|
||||
fileCount++
|
||||
|
||||
if fileCount%100 == 0 {
|
||||
s.checkCPUAndSleep()
|
||||
}
|
||||
|
||||
if info.IsDir() {
|
||||
if s.wlManager.IsPathIgnored(path) {
|
||||
|
|
@ -96,7 +102,7 @@ func (s *Scanner) performScan() {
|
|||
}
|
||||
|
||||
func (s *Scanner) checkCPUAndSleep() {
|
||||
percent, err := cpu.Percent(time.Second, false)
|
||||
percent, err := cpu.Percent(200*time.Millisecond, false)
|
||||
if err != nil || len(percent) == 0 {
|
||||
log.Printf("[扫描器] 获取CPU使用率失败: %v", err)
|
||||
return
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user