تعمق في وحدة الدفعات
تحليل شامل لوحدة src/io/batch.rs.
الغرض
وحدة الدفعات توفر معالجة ملفات متوازية لفحص المجلدات بكفاءة.
المعالج
pub struct BatchProcessor {
config: DetectionConfig,
}
impl BatchProcessor {
pub async fn process_directory(
&self,
path: &str,
progress: Option<mpsc::UnboundedSender<BatchProgress>>,
) -> Result<Vec<(PathBuf, Result<FileType>)>>
}
تتبع التقدم
pub struct BatchProgress {
pub total: usize, // إجمالي الملفات
pub processed: usize, // الملفات المعالجة
pub current_file: PathBuf, // الملف الحالي
}
الميزات
- I/O غير متزامن: عمليات ملفات غير محجوبة مع Tokio
- معالجة متوازية: استخدام أنوية متعددة مع Rayon
- تتبع التقدم: تحديثات في الوقت الحقيقي
- معالجة الأخطاء: يستمر عند الأخطاء، يجمع النتائج
نصيحة أداء
للمجلدات الكبيرة:
- استخدم تتبع التقدم لعرض واجهة المستخدم
- ضبط
max_read_bytesلتوازن السرعة/الدقة - تمرير أنماط الاستبعاد لتخطي الملفات غير المطلوبة