Seite 1 von 2
Frequenz eures 'Performance Counters'
Verfasst: 25.08.2014 22:38
von SBond
Hi Leute,
eventuell könntet ihr mir einen kleinen gefallen tun, sofern ihr Lust habt
Ich schreibe gerade an meinem Programm, das später Daten von einem Mikrocontroller auswerten soll. Dafür benötige ich u.a. eine recht genaue Zeitmessung.
Glücklicherweise ist in ein moderner Computer mit einem Performance Counter ausgestattet, der dieses ermöglicht. Die Frequenz mit der ein solcher Baustein arbeitet, ist allerdings hardwareabhängig.
Würdet ihr bitte den folgenden Code ausführen und bescheid geben, welche Frequenz ausgegeben wird? Zusätzlich wäre noch interessant, wie alt euer Computer ungefähr ist. Ich möchte damit nur prüfen, in welchem Bereich diese Frequenz liegt.
Der Code ist nur für Windows. Die Linux/OSX-APIs sind mir gerade nicht bekannt
Code: Alles auswählen
EnableExplicit
Global qHRPC_Frequenz.q = 0
Global sAusgabe.s = ""
QueryPerformanceFrequency_(@qHRPC_Frequenz)
If (qHRPC_Frequenz <> 0)
sAusgabe = "HRPC-Frequenz:" + #TAB$ + StrF(qHRPC_Frequenz/Int(Pow(10, 6)), 6) + " MHz" + #CRLF$
sAusgabe + "Auflösung:" + #TAB$ + StrF(Int(Pow(10, 9))/qHRPC_Frequenz, 3) + " ns"
MessageRequester("High Resolution Performance Counter", sAusgabe)
EndIf
Auf meinem 6 Jahre alten Laptop (Intel Core2Duo) liegt die Frequenz bei ca. 2,4 MHz. Damit liegt die zeitliche AUflösung bei 404 Nanosekunden.
viele Grüße,
SBond
Re: Frequenz eures 'Performance Counters'
Verfasst: 25.08.2014 22:40
von RSBasic
High Resolution Performance Counter hat geschrieben:HRPC-Frequenz: 3.214619 MHz
Auflösung: 311.079 ns
Jahr: 2012
Re: Frequenz eures 'Performance Counters'
Verfasst: 25.08.2014 23:03
von SBond
super.
danke dir

Re: Frequenz eures 'Performance Counters'
Verfasst: 25.08.2014 23:07
von STARGÅTE
---------------------------
High Resolution Performance Counter
---------------------------
HRPC-Frequenz: 14.318180 MHz
Auflösung: 69.841 ns
---------------------------
OK
---------------------------
AMD Phenom II X4 (3,21GHz) von 2009
Edit: Eine Zeitauflösung von 70ns heißt noch lange nicht, dass der PC auch in der Lage ist genau 70ns zu messen/warten.
Edit2: Hat sich erledigt

Re: Frequenz eures 'Performance Counters'
Verfasst: 25.08.2014 23:12
von Derren
HRPC-Frequenz: 14.282316 MHz
Auflösung: 70.017 ms
HP Compaq 615 (Laptop), AMD Athlon X2 Dualcore QL-66 @2.2GHz - Kaufdatum Mai 2010
Re: Frequenz eures 'Performance Counters'
Verfasst: 25.08.2014 23:16
von Kiffi
HRPC-Frequenz: 2.339531 MHz
Auflösung: 427.436 ns
Der Rechner ist von 2009
Grüße ... Peter
Re: Frequenz eures 'Performance Counters'
Verfasst: 25.08.2014 23:18
von Derren
Super. Wenn ich mir das so ansehe scheint es mir als ob in meinem Laptop ein schnellerer Taktgeber verbaut wurde um den Leistungsindex für Windows und/oder 3rd Party Benchmark tools künstlich in die Höhe zu schrauben

Re: Frequenz eures 'Performance Counters'
Verfasst: 25.08.2014 23:46
von SBond
sogar 14 MHz dabei. Ich dachte es liegt immer so im Bereich 2-4 MHz. ....verdammt... ich will einen neuen Rechner
Das Messen solch kurzer Zeiten ist nicht möglich, zumindest unter Windows. Allerdings kann ich damit sehr gut frequenzen berechnen, wenn ich eine gewisse Zeit lang einen Datenstrom aufnehme. ElapsedMilliseconds() ist mir auch einfach zu grob.
vielen Dank euch allen

solche hilfsbereitschaft ist in deutschen Foren ja keine selbstverständlichkeit mehr. *böse Erinnerungen

*
...mal so ganz nebenbei... kann man:
auch humaner umschreiben? 1000000000 sieht ja blöd aus und sowas wie 10^9 geht auch nicht. "Int(Pow(10, 6))" sieht schon fast wieder kryptisch aus

Re: Frequenz eures 'Performance Counters'
Verfasst: 26.08.2014 00:20
von NicTheQuick
SBond hat geschrieben:sogar 14 MHz dabei. Ich dachte es liegt immer so im Bereich 2-4 MHz. ....verdammt... ich will einen neuen Rechner
Das Messen solch kurzer Zeiten ist nicht möglich, zumindest unter Windows. Allerdings kann ich damit sehr gut frequenzen berechnen, wenn ich eine gewisse Zeit lang einen Datenstrom aufnehme. ElapsedMilliseconds() ist mir auch einfach zu grob.
Wenn du solch genaue Messungen machen willst, solltest du das direkt in deinen Mikrocontroller einbauen. Auf einem Multitasking-Betriebssystem hast du immer Ungenauigkeiten, weil irgendwelche anderen Interrupts auftreten, die du nicht kontrollieren kannst.
...mal so ganz nebenbei... kann man:
auch humaner umschreiben? 1000000000 sieht ja blöd aus und sowas wie 10^9 geht auch nicht. "Int(Pow(10, 6))" sieht schon fast wieder kryptisch aus

Re: Frequenz eures 'Performance Counters'
Verfasst: 26.08.2014 00:40
von SBond
NicTheQuick hat geschrieben:Wenn du solch genaue Messungen machen willst, solltest du das direkt in deinen Mikrocontroller einbauen. Auf einem Multitasking-Betriebssystem hast du immer Ungenauigkeiten, weil irgendwelche anderen Interrupts auftreten, die du nicht kontrollieren kannst.
Das ist durchaus die beste und sicherste Möglichkeit. Mit dem Zeitmesser kann ich allerdings auch Fälle abdecken, bei dem ich keinen Einfluss auf die MCU habe. Je nach dem wie der Anwendungsfall ist, muss man die beste Lösung suchen.
NicTheQuick hat geschrieben:
omg
...ich darf echt keinem erzählen, dass ich ein Ingenieur bin. ...aber Abschluss und Kompetenz sind ja nicht das selbe. Jetzt weiß ich es ja *hihi*