diff --git a/internal/scanner/scanner.go b/internal/scanner/scanner.go index 3850b5f..ff66869 100644 --- a/internal/scanner/scanner.go +++ b/internal/scanner/scanner.go @@ -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