ما الأسرع: تخصيص الذاكرة على الـ 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();
// باقي الكود...
}
```