Hvordan beregne Maksimalt antall MIPS

"MIPS" er en forkortelse for "millioner instruksjoner per sekund" til en datamaskinens prosessor. Beregning datamaskinens MIPS kan gi deg dokumentasjon av hastigheten på CPU. I tillegg kan du fortsette å beregne MIPS til maskinen når sin topp kapasitet. Beregning et maskinens maksimale MIPS kan gjøres med data fra selve datamaskinen.

Bruksanvisning

1 Klikk "Start" og skriv "CMD". Trykk enter." Skriv inn følgende kode og trykk "Enter:"

int TimeMe ()
{
// ..... Virker å være tidsbestemt ....
}

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

QueryPerformanceFrequency (& liFreq);

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

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

// Få nano (milliarddel) av et sekund nøyaktighet
liElap.QuadPart * = 1000000000;
liElap.QuadPart / = liFreq.QuadPart;

printf ( "Time var% I64d nanosekunder \ n", liElap.QuadPart);
}.

Dette gir deg antall instrukser per sekund.

2 Del instruksjonene etter hvor mye tid det tar for instruksjon. For eksempel "1.5million / 0,06."

3 Dele resultatet med 1 million. Dette vil fortelle deg hvor mange millioner instruksjoner blir gjennomført per sekund.

4 Beregn MIPS på en alternativ måte å teste resultatene. Del antall CPU-sykluser per sekund med antall sykluser pr instruksjon. Få KPI ved å trykke på "Start," type "CMD" og trykk "Enter". Skriv inn følgende kode:

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 som valuta, CTR2 som valuta, Freq som valuta
Dim COUNT1 så lenge, Count2 As Long, Loops As Long
'
'Time QueryPerformanceCounter
'
Hvis QueryPerformanceCounter (Ctr1) Deretter
QueryPerformanceCounter CTR2
Debug.Print & quot; Startverdi: & quot ;; Format $ (Ctr1, & quot; 0,0000 & quot;)
Debug.Print & quot; Sluttverdi: & quot ;; Format $ (CTR2, & quot; 0,0000 & quot;)
QueryPerformanceFrequency Freq
Debug.Print & quot; QueryPerformanceCounter minimumsoppløsning: 1 / & quot; & Amp; _
Freq * 10000; & Quot; sek & quot;
Debug.Print & quot; API Overhead: & quot ;; (CTR2 - Ctr1) / Freq; & Quot; sekunder & quot;
Ellers
Debug.Print & quot;. Høy oppløsning teller støttes ikke & quot;
Slutt om
'
'Time GetTickCount
'
Debug.Print
Loops = 0
COUNT1 = GetTickCount ()
Gjøre
Count2 = GetTickCount ()
Loops = Loops + 1
Loop Inntil COUNT1 & lt;> Count2
Debug.Print & quot; GetTickCount minimumsoppløsning: & quot ;; _
(Count2 - COUNT1); & Quot; ms & quot;
Debug.Print & quot; Tok & quot ;; Loops; & Quot; sløyfer & quot;
'
'Time timeGetTime
'
Debug.Print
Loops = 0
COUNT1 = timeGetTime ()
Gjøre
Count2 = timeGetTime ()
Loops = Loops + 1
Loop Inntil COUNT1 & lt;> Count2
Debug.Print & quot; timeGetTime minimumsoppløsning: & quot ;; _
(Count2 - COUNT1); & Quot; ms & quot;
Debug.Print & quot; Tok & quot ;; Loops; & Quot; sløyfer & quot;
End Sub

Del dette resultatet med 1 million.