GetTickCount64
Hàm GetTickCount64()
trả về số mili giây đã trôi qua kể từ khi hệ thống được khởi động.
cpp
ulong GetTickCount64();
1
Giá trị trả về
Giá trị kiểu ulong
.
Ghi chú
Bộ đếm bị giới hạn bởi độ chính xác của bộ định thời hệ thống, thường trả về kết quả với độ chính xác 10-16 mili giây. Không giống như GetTickCount
, có kiểu uint
và nội dung của nó bị tràn sau mỗi 49,7 ngày trong trường hợp máy tính hoạt động liên tục, GetTickCount64()
có thể được sử dụng cho thời gian hoạt động không giới hạn của máy tính và không bị tràn.
Ví dụ:
cpp
#define MAX_SIZE 40
//+------------------------------------------------------------------+
//| Script để đo thời gian tính toán 40 số Fibonacci |
//+------------------------------------------------------------------+
void OnStart()
{
long fib_array[MAX_SIZE];
//--- lưu giá trị ban đầu
ulong start=GetTickCount64();
//--- vòng lặp tính toán số lượng số được chỉ định từ dãy Fibonacci
for(int i=0;i<MAX_SIZE;i++)
fib_array[i]=TestFibo(i);
//--- lấy thời gian đã sử dụng tính bằng mili giây
ulong time=GetTickCount64()-start;
//--- hiển thị thông báo lỗi trong nhật ký Experts
ArrayPrint(fib_array);
PrintFormat("Tính toán %d số Fibonacci đầu tiên mất %I64u ms",MAX_SIZE,time);
}
//+------------------------------------------------------------------+
//| Hàm để lấy số Fibonacci theo số thứ tự của nó |
//+------------------------------------------------------------------+
long TestFibo(long n)
{
//--- thành viên đầu tiên của dãy Fibonacci
if(n<2)
return(1);
//--- tất cả các thành viên tiếp theo được tính bằng phương trình này
return(TestFibo(n-2)+TestFibo(n-1));
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Xem thêm
Date and Time
, EventSetMillisecondTimer
, GetTickCount
, GetMicrosecondCount