O que é mais rápido: alocação de memória na stack ou no heap? Analisando a performance em C++
Olá a todos! Recentemente comecei a estudar C++ e me deparei com uma questão que me deixou muito intrigado. Li que a alocação de memória na stack é "instantânea", enquanto no heap é lenta. Mas quão crítico isso é para programas reais?
Escrevi um pequeno teste para comparar a velocidade. Crio um array de 1000 inteiros de duas maneiras:
```cpp
#include
#include
void testStack() {
for (int i = 0; i < 1000000; ++i) {
int arr[1000]; // na stack
arr[0] = i;
}
}
void testHeap() {
for (int i = 0; i < 1000000; ++i) {
int* arr = new int[1000]; // no 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();
std::cout << "Stack: " << std::chrono::duration_cast(end - start).count() << "ms\n";
start = std::chrono::high_resolution_clock::now();
testHeap();
end =
No answers yet.
Faça login para deixar uma resposta