- Tham gia
- 30/5/06
- Bài viết
- 1,798
- Được thích
- 4,706
- Giới tính
- Nam
1. Tính thời gian thực hiện của một đoạn mã
Đôi khi trong lập trình chúng ta cần xem, dùng đoạn code nào thì nhanh hơn, các bạn có thể xem và sử dụng đoạn mã sau:
Một cách khác:
So sánh thời gian thực hiện đến phần ngàn giây:
Nguồn: MrExcel Library
Lê Văn Duyệt
Đôi khi trong lập trình chúng ta cần xem, dùng đoạn code nào thì nhanh hơn, các bạn có thể xem và sử dụng đoạn mã sau:
Mã:
Dim StartTime As Double
' Bắt đầu tính thời gian
StartTime = Timer
' Các đoạn mã của bạn ở đây
'
'
' Kết thúc đoạn mã của bạn
' Tính và thông báo thời gian thực hiện
MsgBox Format(Timer - StartTime, "00.00") & " giây."
Một cách khác:
So sánh thời gian thực hiện đến phần ngàn giây:
Mã:
Public Declare Function QueryPerformanceFrequency _
Lib "kernel32" (lpFrequency As Currency) As Long
Public Declare Function QueryPerformanceCounter _
Lib "kernel32.dll" (lpPerformanceCount As Currency) As Long
Sub CalculateTime()
Dim Ar(1 To 20, 1 To 4) As Currency, WS As Worksheet
Dim n As Currency, str As Currency, fin As Currency
Dim y As Currency
Dim i As Long, j As Long
Application.ScreenUpdating = False
For i = 1 To 4
For j = 1 To 20
Set WS = ThisWorkbook.Sheets.Add
WS.Range(“A1”).Value = 1
QueryPerformanceFrequency y
QueryPerformanceCounter str
Select Case i
Case 1: Macro1
Case 2: Macro1_Version2
Case 3: Macro1_Version3
Case 4: Macro1_Version4
End Select
QueryPerformanceCounter fin
Application.DisplayAlerts = False
WS.Delete
Application.DisplayAlerts = True
n = (fin - str)
Ar(j, i) = CCur(Format(n, "##########.############") / y)
Next j
Next i
With Range(“A1”).Resize(1, 4)
.Value = Array("Macro1", "Macro2", "Macro3", "Macro4")
.Font.Bold = True
End With
Range("A2").Resize(20, 4).Value = Ar
With Range("A22").Resize(1, 4)
.FormulaR1C1 = "=AVERAGE(R2C:R21C)"
.Offset(1).FormulaR1C1 = "=RANK(R22C,R22C1:R22C4,1)"
.Resize(2).Font.Bold = True
End With
Application.ScreenUpdating = True
End Sub
Nguồn: MrExcel Library
Lê Văn Duyệt
Lần chỉnh sửa cuối: