Nwlapcug.com


Come calcolare il numero massimo di MIPS

"MIPS" è l'acronimo di "milioni di istruzioni al secondo" al processore di un computer. Calcolo MIPS del computer può darti documentazione della velocità della CPU. Inoltre, è possibile continuare a calcolare MIPS fino a quando il computer raggiunge la sua capacità di picco. Calcolo MIPS massima di una macchina può essere fatto con i dati dal computer stesso.

Istruzioni

1

Fare clic su "Start" e digitare "cmd". Premere "Enter". Digitare il seguente codice e premere "invio:"

int TimeMe()
{
... Fai il lavoro per essere a tempo...
}

int TimeIt()
{
LARGE_INTEGER liFreq, liStart, liEnd, liElap;

QueryPerformanceFrequency(&liFreq);

QueryPerformanceCounter(&liStart);
TimeMe();
QueryPerformanceCounter(&liEnd);

liElap.QuadPart = liEnd.QuadPart - liStart.QuadPart;

Ottenere nano (miliardesimo) di una precisione secondo
liElap.QuadPart * = 1000000000;
liElap.QuadPart = liFreq.QuadPart;

printf ("Tempo era % I64d nanoseconds\n", liElap.QuadPart);
}.

Questo ti dà il numero di istruzioni al secondo.

2

Dividere le istruzioni per quanto tempo ci vuole per l'istruzione. Per esempio "1.5million/0.06."

3

Dividere il risultato per 1 milione. Questo vi dirà quanti milioni di istruzioni vengono implementate al secondo.

4

Calcolare MIPS in un modo alternativo per verificare i risultati. Dividere il numero di cicli di CPU al secondo per il numero di cicli per istruzione. Ottenere il CPI premendo "Start", digitare "CMD" e premere "Invio". Digitare il seguente codice:

Option Explicit

Declare Function QueryPerformanceCounter Lib "Kernel32" _
(X As Currency) As Boolean
Declare Function QueryPerformanceFrequency Lib "Kernel32" _
(X As Currency) As Boolean
Declare Function GetTickCount Lib "Kernel32" () As Long
Declare Function timeGetTime Lib "winmm.dll" () As Long

Sub Test_Timers()
Dim Ctr1 As Currency, Ctr2 As Currency, Freq As Currency
Dim Count1 As Long, Count2 As Long, Loops As Long
'
' Time QueryPerformanceCounter
'
If QueryPerformanceCounter(Ctr1) Then
QueryPerformanceCounter Ctr2
Debug.Print "Start Value: "; Format$(Ctr1, "0.0000")
Debug.Print "End Value: "; Format$(Ctr2, "0.0000")
QueryPerformanceFrequency Freq
Debug.Print "QueryPerformanceCounter minimum resolution: 1/" & _
Freq * 10000; " sec"
Debug.Print "API Overhead: "; (Ctr2 - Ctr1) / Freq; "seconds"
Else
Debug.Print "High-resolution counter not supported."
End If
'
' Time GetTickCount
'
Debug.Print
Loops = 0
Count1 = GetTickCount()
Do
Count2 = GetTickCount()
Loops = Loops + 1
Loop Until Count1 <> Count2
Debug.Print "GetTickCount minimum resolution: "; _
(Count2 - Count1); "ms"
Debug.Print "Took"; Loops; "loops"
'
' Time timeGetTime
'
Debug.Print
Loops = 0
Count1 = timeGetTime()
Do
Count2 = timeGetTime()
Loops = Loops + 1
Loop Until Count1 <> Count2
Debug.Print "timeGetTime minimum resolution: "; _
(Count2 - Count1); "ms"
Debug.Print "Took"; Loops; "loops"
End Sub

Dividere il risultato per 1 milione.