Avatar ·

Qu'est-ce qui est plus rapide : l'allocation mémoire sur la pile ou sur le tas ? Analysons les performances en C++

Bonjour à tous ! J'ai récemment commencé à apprendre le C++ et j'ai rencontré une question qui m'a beaucoup intrigué. J'ai lu que l'allocation mémoire sur la pile se fait "instantanément", tandis que sur le tas, c'est lent. Mais à quel point cela est-il critique pour des programmes réels ? J'ai écrit un petit test pour comparer la vitesse. Je crée un tableau de 1000 entiers de deux manières : ```cpp #include #include void testStack() { for (int i = 0; i < 1000000; ++i) { int arr[1000]; // sur la pile arr[0] = i; } } void testHeap() { for (int i = 0; i < 1000000; ++i) { int* arr = new int[1000]; // sur le tas arr[0] = i; delete[] arr; } } int main() { auto start = std::chrono::high_resolution_clock::now(); testStack(); auto end = std::chrono::high_resolution_clock::now(); std::cout << "Stack: " << std::chrono::duration_cast(end - start).count() << "ms\n"; start = std::chrono::high_resolution_clock::no