Avatar ·

Was ist schneller: Speicherallokation auf dem Stack oder auf dem Heap? Performance in C++ verstehen

Hallo zusammen! Ich habe vor kurzem angefangen, C++ zu lernen, und bin auf eine Frage gestoßen, die mich sehr verwirrt hat. Ich habe gelesen, dass die Speicherallokation auf dem Stack "sofort" erfolgt, während sie auf dem Heap langsam ist. Aber wie kritisch ist das für reale Programme?\n\nIch habe einen kleinen Test geschrieben, um die Geschwindigkeit zu vergleichen. Ich erstelle ein Array von 1000 Ganzzahlen auf zwei Arten:\n\n```cpp\n#include \n#include \n\nvoid testStack() {\n for (int i = 0; i < 1000000; ++i) {\n int arr[1000]; // auf dem Stack\n arr[0] = i;\n }\n}\n\nvoid testHeap() {\n for (int i = 0; i < 1000000; ++i) {\n int* arr = new int[1000]; // auf dem Heap\n arr[0] = i;\n delete[] arr;\n }\n}\n\nint main() {\n auto start = std::chrono::high_resolution_clock::now();\n testStack();\n auto end = std::chrono::h