الحجم نفسه 1 غيغابايت، لكن مجلّد الصور يُنسَخ أبطأ من فيديو واحد — لماذا؟
· آخر تحديث: · غو كومورا · Windows, Windows 11, نسخ الملفّات, الأداء, SSD, NAS, ZIP, robocopy
سجل التعديلات (النسخة الأولى، نُشرت في 5 Sep، 2026)
- النشر الأول
فيديو بحجم 1 غيغابايت نُسخ في لمح البصر، لكن مجلّد صور مجموعه 1 غيغابايت يبدو أنّه لا ينتهي. انتقلت إلى SSD جديد، لكن سرعة النقل تهبط فجأة ما إن تنقل كثيراً من الملفّات الصغيرة.
إذا كان الحجم واحداً فينبغي أن يكون الزمن واحداً أيضاً — لكن ما يحدّد زمن النسخ ليس «كم بايتاً ننقل» فحسب، بل أيضاً «كم ملفّاً نعالج».
هذا المقال مقدّمة للمستخدمين اليوميّين الذين ينسخون صوراً ومستندات إلى أقراص خارجيّة أو NAS على Windows 11. يشرح الآلية ثمّ يعرض إجراءً لمقارنة بيانات بالحجم الإجمالي نفسه بنفسك. يستند إلى وثائق رسميّة رُوجعت في 5 أيلول/سبتمبر 2026، وليس نتيجة قياس سرعة حاسوب أو NAS معيّن.
1. «نقل 1 غيغابايت» و«معالجة 10 آلاف عنصر» عملان مختلفان
فكّر في انتقال منزل: حتّى حين يكون الوزن الإجمالي واحداً، صندوق كبير واحد و10 آلاف طرد صغير يجب التحقّق من عناوينها ليسا المقدار نفسه من العمل. وللملفّات أيضاً عمل قبل نقل المحتويات وبعده.
flowchart TB
accTitle: الحجم نفسه، وعدد ملفّات مختلف
accDescr: حتّى مع بيانات مجموعها 1 غيغابايت، ملفّ واحد وكثير من الملفّات يتطلّبان عدداً مختلفاً من عمليّات الإدارة.
A["بيانات مجموعها 1 غيغابايت"] --> B["ملفّ كبير واحد"]
A --> C["10 آلاف ملفّ صغير"]
B --> D["عمليّات لكلّ ملفّ قليلة"]
C --> E["عمليّات لكلّ ملفّ تتكرّر"]
الشكل 1: العدد نفسه من البايتات لا يعني العدد نفسه من الملفّات.
تشرح Microsoft أيضاً أنّه عندما تُنسَخ ملفّات صغيرة كثيرة واحداً تلو الآخر عبر الشبكة، تطغى معالجة غير نقل البيانات فلا تُستخدَم سرعة الخطّ كاملة.1
بالطبع ليست هذه قاعدة حسب الصيغة على غرار «الصور بطيئة والفيديوهات سريعة». حفنة من الصور الكبيرة وعشرات الآلاف من الصور الدقيقة حالتان مختلفتان. ابدأ بفتح خصائص المجلّد والنظر إلى الحجم الإجمالي وعدد الملفّات معاً. في المقارنة طابق مجموع بايتات محتويات الملفّات، لا «الحجم على القرص».
في المخطّط، يشير الخطّ المتّصل إلى علاقة قائمة دائماً، ويشير الخطّ المتقطّع إلى علاقة مشروطة (شروط قيامها مذكورة في شرح كلّ علاقة في الصفحة التفصيليّة). القائمة الكاملة للعلاقات (المجموع 11، مع الأدلّة ودرجة اليقين) وتعريفات المفاهيم الرئيسة مجمّعة في صفحة تفاصيل خريطة المعرفة (باليابانية). البيانات: JSON-LD / Turtle
2. النسخ يعالج أكثر من المحتويات
عند نسخ ملفّ يُفتح المصدر، ويُنشأ ملفّ الوجهة، وتُقرأ المحتويات وتُكتب، وتُضبَط المعلومات المطلوبة، ويُغلق الملفّ. فتح ملفّ على Windows يشمل أيضاً شروطاً مثل حقوق الوصول وما إذا كان يجوز لعمليّات أخرى فتح الملفّ في الوقت نفسه.2
المعلومات المستخدمة لإدارة ملفّ، مثل الاسم والحجم والطوابع الزمنيّة، تُسمَّى البيانات الوصفيّة (metadata). نظام الملفّات NTFS مثلاً يسجّل معلومات الإدارة لكلّ ملفّ في بنى مثل MFT (Master File Table). ليست الآلية أن كتابة بيانات بكسلات الصورة هي كلّ ما في الأمر.3
flowchart TB
accTitle: العمل المتضمَّن في نسخ ملفّ واحد
accDescr: إلى جانب قراءة المصدر، يلزم إنشاء الوجهة وإدارة معلوماتها وإغلاقها لكلّ ملفّ.
A["افتح المصدر"] --> B["أنشئ الوجهة"]
B --> C["اقرأ المحتويات واكتبها"]
C --> D["اضبط المعلومات وأغلق"]
D -.-> E["كرّر للملفّ التالي"]
الشكل 2: مسار مفاهيمي. ترتيب العمليّات الفعلي وأيّ تنفيذ متوازٍ يعتمدان على طريقة النسخ ونظام الملفّات.
SSD لا يُخفي عمل الإدارة هذا. رقم معدّل النقل الكبير على ورقة مواصفات المنتج وحده لا يخبرك كم يستغرق نسخ 10 آلاف ملفّ. ومن التبسيط المفرط أيضاً أن تسمّي نسخ الملفّات الصغيرة «كلّه I/O عشوائيّاً». إلى جانب موضع القراءات والكتابات، لا بدّ من النظر إلى عمل التعامل مع الملفّات نفسه على حدة.
3. على NAS يُضاف «انتظار ردّ الطرف الآخر»
NAS جهاز تخزين يُستخدم عبر الشبكة. مع SMB (Server Message Block)، البروتوكول وراء المجلّدات المشتركة في Windows، تُطلَب عمليّات الملفّات من الطرف الآخر، وتوجد نقاط ينتظر فيها الحاسوب أن يعالج ذلك الطرف الطلب ويردّ.
flowchart TB
accTitle: عمليّات الملفّات عبر الشبكة
accDescr: ينتقل طلب العمليّة من الحاسوب عبر الشبكة، فيصبح عمليّة ملفّ في الطرف الآخر، ثمّ يعود الردّ إلى الحاسوب.
A["الحاسوب يطلب عمليّة ملفّ"] --> B["ينتقل عبر الشبكة"]
B --> C["الطرف الآخر يعالج الملفّ"]
C --> D["يعود الردّ إلى الحاسوب"]
الشكل 3: القدرة على نقل كمّ كبير دفعة واحدة والحصول على ردّ سريع لعمليّة واحدة أمران مختلفان.
عرض النطاق يقابل عدد الحارات على الطريق؛ والتأخير يقابل الزمن حتّى يعود الردّ. عندما يكبر الانتظار لكلّ ملفّ صغير، لا يزيد المنقول حتّى مع فائض في عرض النطاق. ويمكن لفحص مكافحة الفيروسات أن يؤثّر أيضاً في زمن المعالجة لكلّ ملفّ.1
غير أنّ هذا لا يعني أنّ كلّ ملفّ يتطلّب دائماً عدداً ثابتاً من الذهاب والإياب. يملك SMB آلية لتجميع الطلبات، وتغيّر شروط الذاكرة المؤقّتة والتوازي أيضاً شكل الانتظار.45 وتختلف النتائج كذلك بين شبكة LAN منزليّة ومجلّد مشترك في موقع بعيد.
مثال مبسَّط للتفكير بالأرقام
بافتراض أنّ كلّ شيء يُعالَج بالتتابع بلا تداخل، يسير التفكير كالتالي.
زمن النسخ ≈ مجموع البايتات ÷ معدّل نقل البيانات
+ عدد الملفّات × زمن إضافي لكلّ ملفّ
هذا ليس قيمة مقاسة ولا صيغة Windows الدقيقة. للإيضاح افترض أنّ جزء البيانات يسير عند 100 ميغابايت/ث وأنّ الزمن الإضافي 2 ملي ثانية لكلّ ملفّ. هنا 1 غيغابايت = 1,000 ميغابايت.
جزء بيانات الـ 1 غيغابايت يستغرق 10 ثوانٍ. مع ملفّ واحد الزمن الإضافي 0.002 ثانية، لكن مع 10 آلاف ملفّ يصبح 20 ثانية، فيبلغ المجموع نحو 30 ثانية. يُسقط النموذج التوازي والذاكرة المؤقّتة وقيود CPU والتخزين، لكنّه يشرح لماذا «الحجم نفسه يستغرق زمناً مختلفاً».
flowchart TB
accTitle: تقسيم زمن النسخ إلى جزأين
accDescr: يميّز زمن النقل الذي يحدّده الحجم الإجمالي عن الزمن الإضافي الذي يتراكم مع عدد الملفّات.
A["زمن يتناسب مع الحجم الإجمالي"] --> C["زمن النسخ الإجمالي"]
B["زمن إضافي يتناسب مع عدد الملفّات"] --> C
الشكل 4: كلّما زاد عدد الملفّات بدأ زمن كان خفيّاً من حجم البيانات وحده يؤثّر.
4. ZIP لا «يصغّر» فحسب — بل أيضاً «يجمع في واحد»
لـ ZIP دوران: ضغط البيانات وتجميع ملفّات متعدّدة في وعاء واحد. JPEG صيغة مضغوطة أصلاً، لذا قد لا يقلّل وضعها في ZIP الحجم كثيراً.6
ومع ذلك يوجد أثر منفصل: عدد الملفّات المعالَجة أثناء النقل يهبط من 10 آلاف إلى واحد. النظر إلى نسبة الضغط وحدها واستنتاج أنّ «ZIP لم يكن له معنى» استنتاج مبكر.
flowchart TB
accTitle: دورا ZIP
accDescr: تغيّر عدد الملفّات من التجميع في ZIP وتغيّر الحجم من الضغط أثران منفصلان.
A["اجمع الصور في ZIP"] --> B["ملفّ واحد للنقل"]
A --> C["تغيّر الحجم يعتمد على المحتويات"]
الشكل 5: حتّى حين لا يكاد شيء يُضغط، ينخفض عدد الملفّات المنقولة.
غير أنّ التجميع والاستخراج ليسا مجّانيّين. إذا أردت استخدام الصور كمجلّد عادي، قارن المجموع التالي.
الزمن عبر ZIP = إنشاء ZIP + نقل ZIP + الاستخراج
إنشاء ZIP يقرأ الملفّات الصغيرة، والاستخراج ينشئها من جديد في الوجهة. النقطة ليست محو العمل لكلّ ملفّ بل تغيير مكان حدوث ذلك العمل وشكل النقل. إذا كانت المعالجة قبل النقل وبعده ثقيلة، فقد يكون عدم التجميع أسرع.1
5. «أين تستخرج» يغيّر ما يشتريه ZIP
إذا أرسلت ZIP إلى الحاسوب المستقبِل واستخرجته على القرص المحلّي لذلك الحاسوب، فلا حاجة إلى بثّ الملفّات الصغيرة عبر الشبكة واحداً تلو الآخر. وإرشاد Microsoft يذكر أيضاً استخراج الأرشيف على نظام الوجهة طريقةً.1
flowchart TB
accTitle: الاستخراج على الوجهة مقابل الاستخراج من الحاسوب إلى المشاركة
accDescr: يميّز المسار الذي تستخرج فيه الوجهة داخليّاً عن المسار الذي يكتب فيه الحاسوب الملفّات المستخرَجة إلى المشاركة.
A["أرسل ZIP إلى الوجهة"] --> B["الوجهة تستخرج داخليّاً"]
C["تطبيق الحاسوب يستخرج"] --> D["ملفّات صغيرة تُرسَل إلى المشاركة"]
الشكل 6: «ZIP موجود على NAS» لا يعني وحده أنّ الاستخراج يُنفَّذ داخل NAS.
هذا موضع سهل الخطأ فيه. إذا فتحت ZIP على NAS في مستكشف الملفّات على الحاسوب واخترت المجلّد المشترك نفسه وجهة استخراج، يكتب الحاسوب الملفّات الصغيرة المستخرَجة إلى NAS، فتحدث عمليّات الشبكة الدقيقة من جديد.
ميّز هذا عن الحالة التي يملك فيها NAS نفسه ميزة استخراج مدعومة يمكن تشغيلها داخل NAS، من وحدة الإدارة أو ما شابه. إن لم توجد مثل هذه الميزة، فلا تكتفِ بـ«إرسال ZIP يحلّ الأمر»؛ قِس المسار الكامل الذي ستستخدمه فعلاً. عند مقارنة الاستخراج داخل NAS بالاستخراج إلى القرص المحلّي للحاسوب، تذكّر أيضاً أنّ الموضع النهائي للملفّات مختلف.
6. مقارنة الكبير والصغير وZIP عند الـ 1 غيغابايت نفسه
يمكنك البدء بتجربته بفيديو وصور لديك أصلاً. لكن بما أنّ المحتويات وعدد الملفّات وقابليّة الضغط تختلف كلّها، استخدم بيانات اختبار عندما تريد عزل السبب. ما يلي ليس مجموعة سرعات مقاسة بل إجراء مقارنة تشغّله في بيئتك.
جهّز ثلاثة أشياء: ملفّاً كبيراً واحداً، و10 آلاف ملفّ صغير، وZIP غير مضغوط يجمع تلك الـ 10 آلاف ملفّ. محتويات A وB مجموعهما بالضبط 1,000,000,000 بايت. يحمل C معلومات إدارة ZIP فوق ذلك، لذا لن يطابق حجم ملفّه A وB تماماً.
flowchart TB
accTitle: ثلاثة أنواع من بيانات المقارنة
accDescr: أنشئ ملفّاً كبيراً واحداً ومجموعة ملفّات صغيرة بالحجم الإجمالي نفسه، ثمّ أنشئ ZIP غير مضغوط من الأخيرة.
A["جهّز المجموع نفسه 1 غيغابايت"] --> B["ملفّ واحد بحجم 1 غيغابايت"]
A --> C["10 آلاف ملفّ بحجم 100 كيلوبايت"]
C --> D["المحتويات نفسها في ZIP غير مضغوط"]
الشكل 7: مع ZIP غير مضغوط يسهل ملاحظة أثر تجميع الملفّات منفصلاً عن أيّ فرق في نسبة الضغط.
إنشاء ملفّات الاختبار (اختياري)
هذا للقرّاء الذين يمكنهم استخدام سطر الأوامر. في Windows PowerShell 5.1 أو أحدث أنشئ مجلّد اختبار جديداً في المجلّد المؤقّت المحلّي. الملفّ الكبير والملفّات الصغيرة وحدها تستغرق نحو 2 غيغابايت، ونحو 3 غيغابايت مع ZIP، وتحتاج الوجهة حرّاً خاصّاً بها أيضاً. لتفادي ملء القرص تأكّد من أنّ المصدر يملك نحو 5 غيغابايت حرّة على الأقل.
لا تُستخدم صور أو مستندات موجودة. البيانات مولَّدة من أرقام شبه عشوائيّة، لذا لا يمكن فتح الملفّات كفيديوهات أو صور. يتجنّب هذا الضغط المتطرّف الذي تحصل عليه ببيانات مملوءة بأصفار وحدها، لكنّه لا يعيد إنتاج الفحص أو سلوك التطبيق للصور الحقيقيّة.
$ErrorActionPreference = 'Stop'
$lab = Join-Path ([System.IO.Path]::GetTempPath()) ('copylab-' + [guid]::NewGuid().ToString('N'))
$drive = New-Object System.IO.DriveInfo ([System.IO.Path]::GetPathRoot($lab))
if ($drive.AvailableFreeSpace -lt 5GB) {
throw 'تأكّد من أنّ محرّك الاختبار يملك 5 غيغابايت حرّة على الأقل.'
}
$largeDir = Join-Path $lab 'large'
$smallDir = Join-Path $lab 'small'
[System.IO.Directory]::CreateDirectory($largeDir) | Out-Null
[System.IO.Directory]::CreateDirectory($smallDir) | Out-Null
Write-Host "أُنشئ في: $lab"
$fileCount = 10000
$buffer = New-Object byte[] 100000
$random = New-Object System.Random 20260905
$large = [System.IO.File]::Open(
(Join-Path $largeDir 'one.bin'),
[System.IO.FileMode]::CreateNew,
[System.IO.FileAccess]::Write,
[System.IO.FileShare]::None
)
try {
for ($i = 0; $i -lt $fileCount; $i++) {
$random.NextBytes($buffer)
$name = 'part-{0:D5}.bin' -f $i
[System.IO.File]::WriteAllBytes((Join-Path $smallDir $name), $buffer)
$large.Write($buffer, 0, $buffer.Length)
}
}
finally {
$large.Dispose()
}
Write-Host "اكتمل التحضير. محتويات كلّ مجموعة بيانات هي $([long]$fileCount * $buffer.Length) بايت."
تُكتب سلسلة البايتات نفسها إلى القطع الصغيرة وإلى الملفّ الواحد. بعد ذلك، في نافذة PowerShell نفسها، أنشئ ZIP غير المضغوط. سجّل زمن الإنشاء هنا. NoCompression يخزّن الملفّات في ZIP دون ضغطها.7
$zip = Join-Path $lab 'small.zip'
$watch = [System.Diagnostics.Stopwatch]::StartNew()
Compress-Archive -LiteralPath $smallDir -DestinationPath $zip -CompressionLevel NoCompression
$watch.Stop()
Write-Host "إنشاء ZIP: $($watch.Elapsed.TotalSeconds) ثانية"
Write-Host "حجم ZIP: $((Get-Item -LiteralPath $zip).Length) بايت"
هذا الإجراء للملفّات العاديّة المولَّدة فقط. لـ Compress-Archive قيود مثل تجاهل الملفّات المخفيّة، لذا لا تعد استخدامه كما هو لنسخة احتياطيّة كاملة لمجلّد مهمّ.7 إذا توقّف بخطأ فلا تستخدم ذلك التشغيل للقياس؛ راجع مجلّد الاختبار الذي عُرض مساره. نظّف فقط بعد التأكّد من أنّ المجلّد هو الذي أنشأته بنفسك.
إبقاء شروط القياس واحدة
استخدم أجهزة المصدر والوجهة نفسها، والشبكة نفسها، وطريقة النسخ نفسها. في البداية انسخ الثلاثة في مستكشف الملفّات؛ لا تستخدم النقل. اجعل الوجهة مجلّداً جديداً فارغاً في كلّ مرّة حتّى لا يختلط تخطّي ملفّات موجودة أو مطالبات الاستبدال.
flowchart TB
accTitle: إجراء لإبقاء شروط المقارنة واحدة
accDescr: ثبّت مسار النسخ وطريقته، وانسخ إلى وجهة فارغة عدّة مرّات بترتيب متفاوت، وتحقّق من المحتويات بعد الاكتمال.
A["الأجهزة والمسار والطريقة نفسها"] --> B["وجهة فارغة في كلّ مرّة"]
B --> C["قِس عدّة مرّات بترتيب متفاوت"]
C --> D["تحقّق من العدد والمحتويات أيضاً"]
الشكل 8: لا تعامل الزمن الموفَّر بتخطي ملفّات منسوخة أصلاً على أنّه نقل أسرع.
قِس كلّ حالة، مثلاً، ثلاث مرّات مع تغيير الترتيب، وسجّل الوسيط والانتشار. يخزّن Windows الملفّات في الذاكرة، لذا قد يخرج التشغيل الثاني وحده أسرع. وجهة جديدة لا تمسح الذاكرة المؤقّتة في جانب القراءة. ما يكشفه هذا الإجراء ميل قريب من النسخ اليومي، لا أداء وسيطاً صارماً بلا ذاكرة مؤقّتة.5
النسخ داخل القرص الفيزيائي نفسه تتنافس فيه القراءات والكتابات، لذا لا تخلطه بنسخ إلى جهاز منفصل. لا تستخدم ملفّات سحابيّة «عبر الإنترنت فقط» لأنّ زمن جلبها سيدخل، ولا تغيّر شروطاً مثل مكافحة الفيروسات أو المزامنة في منتصف الطريق.
| الحالة | زمن الإنشاء | زمن النقل | زمن الاستخراج | المجموع حتّى تصبح الصور وما شابه قابلة للاستخدام |
|---|---|---|---|---|
| A: ملفّ كبير واحد | مستثنى (تحضير للمقارنة) | قِس وسجّل | غير مطلوب | زمن النقل (شاهد) |
| B: 10 آلاف ملفّ صغير | مستثنى (تحضير للمقارنة) | قِس وسجّل | غير مطلوب | زمن النقل |
| C: ZIP غير مضغوط يجمع B | سجّل إنشاء ZIP | قِس وسجّل | سجّل إن لزم | الإنشاء + النقل + الاستخراج |
هذا جدول للتسجيل؛ لا تُملأ فيه أرقام نتائج. A شاهد لملاحظة خصائص النقل؛ ولأنّ بنية ملفّاته مختلفة فهو ليس بديلاً عن B. للمقارنة العمليّة بين B وC الهدف وضع المجموعة نفسها من الملفّات في الموضع النهائي نفسه. سجّل دائماً أين جرى الاستخراج أيضاً.
بعد النسخ أو الاستخراج طابق عدد الملفّات ومجموع البايتات، وتحقّق من المحتويات بالتجزئات إن لزم. نفّذ قراءات التحقّق خارج القياس، ولاحظ أنّها تؤثّر أيضاً في الذاكرة المؤقّتة للمحاولة التالية. الزمن حتّى تُغلق نافذة النسخ لا يقيس الزمن حتّى تصمد البيانات أمام انقطاع الكهرباء، لذا لا تجرّب أيضاً فصل جهاز خارجي فوراً بعد ذلك.5
7. عندما لا يمكنك استخدام ZIP، انسخ على التوازي قليلاً قليلاً
للاستخدامات التي يجب أن تكون فيها الملفّات الفرديّة قابلة للاستخدام في الوجهة فوراً، أو حيث تُرسَل فقط الملفّات التي تغيّرت في كلّ مرّة، قد لا يناسب التجميع في ZIP. يملك robocopy المضمَّن في Windows الخيار /MT الذي يعالج ملفّات متعدّدة على التوازي.89
flowchart TB
accTitle: تداخل انتظار كلّ ملفّ على التوازي
accDescr: بالعمل على عدّة ملفّات في آن، يمكن لنقل آخر أن يتقدّم بينما ملفّ واحد ينتظر.
A["عالج عدّة ملفّات في آن"] --> B["الملفّ A ينتظر ردّاً"]
A --> C["الملفّ B قيد النقل"]
B --> D["الانتظارات تتداخل"]
C --> D
الشكل 9: التوازي طريقة لتداخل الانتظارات؛ وهو لا يجعل الخطّ أو القرص نفسه أسرع.
المثال التالي ينسخ من $smallDir المنشأ سابقاً. غيّر $targetRoot وحدها إلى وجهة يمكنك الكتابة إليها. أنشئ مجلّد وجهة منفصلاً لكلّ تشغيل، ولا تستخدم خيارات تحذف بيانات المصدر أو الوجهة.
$targetRoot = '\\NAS\share\CopyLab' # غيّر إلى وجهتك أنت
$runId = [guid]::NewGuid().ToString('N')
$target = Join-Path $targetRoot ('small-mt8-' + $runId)
$log = Join-Path $lab ('robocopy-' + $runId + '.log')
robocopy $smallDir $target /E /MT:8 /R:1 /W:1 /XJ "/LOG:$log"
$code = $LASTEXITCODE
if ($code -ge 8) {
throw "حدث فشل في النسخ. رمز الخروج=$code، السجلّ=$log"
}
Write-Host "رمز الخروج=$code. راجع أعداد المنسوخ والفاشل في السجلّ ومحتويات الوجهة: $log"
/MT:8 يعني 8 خيوط، و/R:1 /W:1 هما عدد إعادة المحاولة والانتظار بالثواني عند الفشل، و/LOG يحفظ السجلّ. يبلّغ robocopy عن نسخ ناجح حتّى مع رمز خروج 1، و8 فما فوق يشمل فشلاً. ذلك لا يعني أنّ 0 إلى 7 يعفيك من التحقّق من المحتويات.8
/MT:8 نقطة انطلاق للمقارنة، وليست قيمة مثلى. الإفراط في التوازي يزيد الحمل على الطرف الآخر ويمكن أن يجعل الأمور أبطأ فعلاً.1 احصر ما تغيّره في كلّ مرّة، مثلاً بمقارنة /MT:1 و/MT:8 بالطريقة نفسها. لا تحكم على أثر أيّ منهما من نتيجة غُيّر فيها ZIP والتوازي في الوقت نفسه.
8. قبل أن تستنتج «بطيء، إذن معطَّل»
هل الملفّات الصغيرة الكثيرة وحدها بطيئة، أم الملفّات الكبيرة بطيئة أيضاً؟ ماذا يحدث عندما تُنسَخ الملفّات نفسها محلّيّاً؟ فصل هذه يضيّق أين تنظر. عندما تهبط السرعة في منتصف الطريق قد تكون الذاكرة المؤقّتة متدخّلة، والسرعة المعروضة وحدها لا تحدّد السبب.5
flowchart TB
accTitle: عزل النسخ البطيء
accDescr: يحقّق في البطء المحصور في الملفّات الصغيرة منفصلاً عن البطء بغضّ النظر عن نوع البيانات.
A{"الملفّات الصغيرة وحدها بطيئة؟"} -->|نعم| B["انظر إلى عدد الملفّات وزمن الانتظار"]
A -->|لا| C["راجع أيضاً الجهاز والاتّصال والحمل"]
B --> D["تحقّق أيضاً من الفشل أو الانقطاع"]
C --> D
الشكل 10: سرعة لا تتوسّع مع الملفّات الصغيرة وفشل النسخ أو أعطال الجهاز ليسا القصّة نفسها.
عندما يحدث فشل نسخ أو انقطاع، أو ساءت الأمور فجأة كثيراً عمّا قبل، لا تتوقّف عند تفسيره بعدد الملفّات وحده. قدّم الحفاظ على البيانات المهمّة أوّلاً، وراجع السجلّات وحالة الأجهزة.
كذلك لا يُوصى بإيقاف مكافحة الفيروسات أو تعطيل توقيع SMB لكسب السرعة. لتوقيع SMB دور في منع التلاعب بالاتّصال، من بين أمور أخرى.10 على حاسوب مُدار لا تلتف على الإعدادات؛ استشر المسؤول.
الخلاصة
زمن النسخ يتكوّن من زمن يتناسب مع كمّ البيانات وعمل يتناسب مع عدد الملفّات معاً. لذلك لا يصمد بالضرورة «إنّه 1 غيغابايت، إذن يستغرق الزمن نفسه».
إذا جرّبت ZIP فانظر أبعد من نسبة الضغط إلى الإنشاء والنقل والاستخراج. إذا جرّبت النسخ المتوازي فغيّر عدد الخيوط وحده في كلّ مرّة. قبل شراء عتاد أسرع، النظر إلى الحجم الإجمالي وعدد الملفّات معاً يسهّل التفكير فيما يحدث على Windows لديك الآن.
روابط مرجعيّة
-
Microsoft Learn, Slow SMB files transfer speed. حول كثرة الملفّات الصغيرة، وعبء إنشاء الملفّات والاتّصال والفحص، والنسخ المتوازي، واستخراج أرشيف على الوجهة. ↩ ↩2 ↩3 ↩4 ↩5
-
Microsoft Learn, CreateFileW function. حول فتح الملفّات وإنشائها، وحقوق الوصول، وأوضاع المشاركة. ↩
-
Microsoft Learn, Master File Table. حول كيفيّة احتفاظ NTFS بمعلومات الإدارة لكلّ ملفّ. ↩
-
Microsoft Open Specifications, Sending Compounded Requests. حول كيفيّة إرسال SMB2 عدّة عمليّات مرتبطة معاً. ↩
-
Microsoft Learn, File Caching. حول ذاكرة ملفّات النظام والآلية التي تؤخّر الكتابات قبل تطبيقها. ↩ ↩2 ↩3 ↩4
-
Microsoft Support, Zip and unzip files. حول تجميع الملفّات بـ ZIP، وحول أنّ JPEG لا يصغر كثيراً بضغط إضافي. ↩
-
Microsoft Learn, Compress-Archive. حول إعداد NoCompression وقيود مثل الملفّات المخفيّة. ↩ ↩2
-
Microsoft Learn, robocopy. حول عدد الخيوط، وإعادة المحاولة، والتسجيل، وخيارات النسخ، ورموز الخروج. ↩ ↩2
-
Microsoft Learn, Performance Tuning for SMB File Servers. حول توازي robocopy وإخراج السجلّ لنسخ الملفّات الصغيرة. ↩
-
Microsoft Learn, SMB signing overview. حول ما يحميه توقيع SMB وكيفيّة التفكير فيه تشغيليّاً. ↩
مقالات ذات صلة
أحدث المقالات التي تشترك في نفس الوسوم. عمّق فهمك بمواضيع مرتبطة.
ما جدولة GPU المسرَّعة عتاديّاً في Windows؟ هل تفعيلها يجعل الحاسوب أسرع؟
دليل موضَّح لغير المختصّين عن جدولة GPU المسرَّعة عتاديّاً (HAGS) في Windows: كيف تعمل، ومتى تُفعَّل أو تُوقَف، ولماذا قد يغيب الإعداد، و...
القرص عند 100٪: ما الذي ينبغي إيقافه فعليّاً؟ — التمييز بين SysMain وWindows Search وDefender
اعزل استخدام قرص Windows عند 100٪ عبر معدّل النقل وزمن الاستجابة والملفّات. أوقف SysMain مؤقّتاً بأمان، وضيّق نطاق Windows Search، وحلّل ...
هل إيقاف سلامة الذاكرة (HVCI) يجعل Windows أسرع؟ ── المعنى والإجراء والحكم
هل إيقاف سلامة الذاكرة (HVCI) يسرّع حاسوب Windows فعلاً؟ متى يمكن أن يساعد، ومتى لا، وكيف توقفه وتعيده، وكيف تقرّر.
الوضع الداكن وسمة التباين في تطبيقات Windows ── شريط العنوان الداكن عبر DWM، وتتبع سمة النظام في WinForms/WPF، والرسم عند التباين العالي
شرح جعل تطبيقات WinForms/WPF تتبع الوضع الداكن وسمة التباين في Windows 11. نرتّب شريط العنوان الداكن عبر DWM، وSetColorMode وThemeMode في...
انتهاء خدمة برامج تشغيل الطابعات في Windows ── كيف تستعد تطبيقات الأعمال لطباعة التقارير والملصقات
تُنهى Microsoft تدريجيّاً خدمة برامج تشغيل الطابعات v3/v4، ومن تمّوز/يوليو 2026 يُفضَّل برنامج تشغيل فئة IPP. نرتّب في جداول قرار ما يختف...
أين يتصل هذا الموضوع
ترتبط هذه المقالة بشكل طبيعي بصفحات الخدمات التالية.
تطوير تطبيقات ويندوز
ندعم تطوير برامج ويندوز للأعمال، وتكامل الأجهزة، وأدوات التواصل.
الأسئلة الشائعة
أسئلة شائعة حول موضوع هذه المقالة.
- لماذا يُنسَخ مجلّد الصور أبطأ رغم أنّ الحجم واحد؟
- النسخ ليس نقل المحتويات وحدها. لكلّ ملفّ يُنشأ ملفّ الوجهة، وتُدار معلوماته، ويُغلق، وما إلى ذلك. عندما تكثر الملفّات الصغيرة ترتفع حصّة هذه المعالجة والانتظار. المهمّ ليس صيغة الصورة ذاتها بل عدد الملفّات وحجم كلّ واحد.
- هل تبقى الملفّات الصغيرة بطيئة النسخ على SSD أو شبكة LAN سريعة؟
- نعم. حتّى على SSD يبقى عمل إدارة الملفّات، وعند النسخ إلى NAS أو ما شابه يُضاف زمن انتظار الشبكة ومعالجة الطرف الآخر. سرعة النقل المتواصل لملفّات كبيرة وسرعة معالجة آلاف الملفّات الصغيرة أمران مختلفان.
- إذا لم يصغر JPEG داخل ZIP، فهل للتجميع أيّ فائدة؟
- حتّى حين لا يكاد الحجم ينكمش، يبقى لتجميع الملفّات المنقولة في ملفّ واحد أثر. غير أنّ إنشاء ZIP واستخراجه يستغرقان وقتاً أيضاً. للاستخدامات التي تتطلّب الاستخراج قارن الزمن الإجمالي للإنشاء والنقل والاستخراج.
- هل يكون أسرع أن أرسل ZIP إلى NAS ثمّ أستخرجه إلى المجلّد المشترك من الحاسوب؟
- بهذه الطريقة يكتب الحاسوب الملفّات الصغيرة المستخرَجة إلى NAS، فيحدث إنشاء الملفّات عبر الشبكة من جديد. ميّز هذا عن الاستخراج داخل NAS بميزة يدعمها NAS نفسه، وقِس مع الاستخراج مشمولاً.
- هل يزداد نسخ robocopy المتوازي سرعة كلّما زدت الخيوط؟
- لا. التوازي يسمح بتداخل انتظارات كلّ ملفّ، لكنّه يزيد أيضاً الحمل على التخزين أو NAS. قارن في الشروط نفسها بدءاً من عدد خيوط صغير، وراجع السجلّ بحثاً عن فشل النسخ والملفّات الفائتة كذلك.
الملف الشخصي للمؤلف
صفحة الملف الشخصي لمؤلف المقالة.
غو كومورا
مؤسّس شركة كومورا سوفت ذ.م.م.
يركّز على تطوير برامج ويندوز، والاستشارات التقنية، والتحقيق في الأخطاء، ويتميّز في المشاريع التي تبقى فيها الأصول القديمة ناشطة، وفي تشخيص الأعطال التي يصعب تحديد سببها.