PDA

Показать полную графическую версию : скорость выполнения программы


иоанн
29-05-2009, 21:01
хотелось узнать является ли скорость такой программы показателем быстодействия компьютера. мой комп считает ее за 21.9 сек. (извините за терминологию чайника)
Dim a As Long

Private Sub Command1_Click()
a1 = Timer
'девять нулей
For a = 1 To 1000000000
Next
a2 = Timer
b = a2 - a1
Print b
'у меня 21.92188 секунд
End Sub

Busla
29-05-2009, 21:53
иоанн, умный компилятор/интерпретатор может вообще пропустить пустой цикл ;-)
т.к. компьютеры все разные (процессор, память, периферия), для оценки производительно используют набор тестов или даже симулируют реальные задачи.

Admiral
29-05-2009, 22:22
иоанн, своего рода да, но если есть желание делать бенчмарк, то как сказал Busla, симулировать какую-то задачу.
Например в программе Super PI рассчитывается постоянная до определённого (2^32) знака после запятой.
'у меня 21.92188 секунд »
Это наверное запущенное со среды? Если скомпилировать и запустить то значение будет менее 10 секунд, а то и 5.

иоанн
29-05-2009, 23:43
а что такое _ бенчмарк_

Admiral
30-05-2009, 01:17
http://ru.wikipedia.org/wiki/Бенчмарк

иоанн
30-05-2009, 11:44
не знаю . как его (код) написать , чтобы было компактно и культурно
Dim i As Integer
Dim pn(20000000) As Double
Dim p As Double
Dim n As Long

Private Sub Command1_Click()
a1 = Timer
i = 1
p = 4
For n = 2 To 20000000
pn(n) = -i * 4 / (2 * n - 1)
If i = 1 Then
i = -1
Else
i = 1
End If
p = p + pn(n)
Next
a2 = Timer
a = a2 - a1
Print "число пи -"; p
Print "время -"; a; "секунд"
End Sub
там формула для числа пи _ p=4-4/3+4/5-4/7+4/9-4/11 .........

Pliomera
30-05-2009, 13:05
...
denom = -1: ourPi = 0 'Начальные значения переменных
For x = 1 To 20000000
denom = denom + 2 'Инкремент для знаменателя дробей
Select Case (denom + 4) Mod 4 'Проверка знака очередного слагаемого
Case 1: ourPi = ourPi + 4 / denom
Case 3: ourPi = ourPi - 4 / denom
End Select
Next x
...




© OSzone.net 2001-2012