أداء فرز المصفوفات في Swift Beta: لماذا هو بطيء جدًا وكيفية تسريعه؟
مرحبًا بالجميع! لقد بدأت للتو في تعلم Swift وواجهت مشكلة غريبة جدًا عند فرز المصفوفات في Xcode 6 Beta.
لدي مصفوفة بسيطة من الأعداد الصحيحة، وأريد فرزها تنازليًا. كتبت الكود التالي:
```swift
var numbers = [9, 3, 5, 1, 8, 2, 7, 4, 6]
numbers.sort { $0 > $1 }
```
يبدو كل شيء منطقيًا. ولكن عندما أقوم بتشغيل هذا الكود على مصفوفة كبيرة (لنقل 100,000 عنصر)، يستغرق الفرز وقتًا طويلاً جدًا — حوالي 4-5 ثوانٍ! بينما إذا قمت بنفس الشيء في Objective-C باستخدام `sortedArrayUsingComparator:`، فإن كل شيء يعمل فوريًا (أقل من 0.1 ثانية).
لقد جربت خيارات مختلفة:
1. `numbers.sort(>)` — نفس البطء.
2. `numbers.sorted(by: >)` — يُرجع مصفوفة جديدة، ولكنه أيضًا بطيء.
3. حتى `numbers.sort()` البسيط بدون closure — لا يزال بطيئًا.
ما المشكلة؟ هل هو خطأ في النسخة التجريبية أم أنني أفعل شيئًا خاطئًا؟ ربما أحتاج إلى تفعيل بعض تحسينات المترجم؟ أشعر بخيبة أمل كبيرة من الأداء، لأن Swift