[問題] time.h相關問題請教
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
這是一個測試
希望連續allocate deallocate大量的記憶體空間 觀察static stack heap
這三種機制所花的時間
但我不知道為甚麼stack跑出來是零...
程式跑出來的錯誤結果:
Total time: 0.000000000000000e+00s Average time: 0.000000000000000e+00s
Total time: 0.000000000000000e+00s Average time: 0.000000000000000e+00s
Total time: 1.900000000000000e+01s Average time: 1.900000000000000e-05
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
g++
有問題的code: (請善用置底文標色功能)
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
#define ARRAY_SIZE 1000000
#define ITERATION_TIMES 1000000
void Static(void)
{
static int arr[ARRAY_SIZE];
}
void Stack(void)
{
int arr[ARRAY_SIZE];
}
void Heap(void)
{
int *arr = new int[ARRAY_SIZE];
delete []arr;
}
void (*funcVector[3]) (void) = { Static, Stack, Heap };
int main()
{
time_t timeStart, timeEnd;
long double timeUsed;
for(int i = 0 ; i < 3 ; i++)
{
time(&timeStart);
for(int j = 0 ; j < ITERATION_TIMES ; j++)
{
(*funcVector[i])();
}
time(&timeEnd);
timeUsed = difftime(timeEnd, timeStart) / ITERATION_TIMES;
cout << scientific << setprecision(15);
cout << "Total time: " << difftime(timeEnd, timeStart) << "s "
<< "Average time: " << timeUsed << "s" << endl;
}
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.68.17
→
10/31 17:47, , 1F
10/31 17:47, 1F
→
10/31 17:48, , 2F
10/31 17:48, 2F
→
10/31 17:49, , 3F
10/31 17:49, 3F
→
10/31 17:50, , 4F
10/31 17:50, 4F
→
10/31 17:50, , 5F
10/31 17:50, 5F
→
10/31 17:51, , 6F
10/31 17:51, 6F
→
10/31 17:52, , 7F
10/31 17:52, 7F