Avatar ·

ما الأسرع: تخصيص الذاكرة على الـ Stack أم الـ Heap؟ تحليل الأداء في C++

مرحباً بالجميع! لقد بدأت مؤخراً في تعلم C++ وواجهت سؤالاً حيرني كثيراً. قرأت أن تخصيص الذاكرة على الـ Stack يحدث "فورياً"، بينما في الـ Heap يكون بطيئاً. لكن ما مدى أهمية هذا الأمر للبرامج الحقيقية؟ لقد كتبت اختباراً صغيراً لمقارنة السرعة. أقوم بإنشاء مصفوفة من 1000 عدد صحيح بطريقتين: ```cpp #include #include void testStack() { for (int i = 0; i < 1000000; ++i) { int arr[1000]; // على الـ Stack arr[0] = i; } } void testHeap() { for (int i = 0; i < 1000000; ++i) { int* arr = new int[1000]; // في الـ Heap arr[0] = i; delete[] arr; } } int main() { auto start = std::chrono::high_resolution_clock::now(); testStack(); auto end = std::chrono::high_resolution_clock::now(); // باقي الكود... } ```