Frequenz eures 'Performance Counters'

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
SBond
Beiträge: 266
Registriert: 22.05.2013 20:35
Computerausstattung: armseliger Laptop, mit wenig RAM und noch weniger CPU-Leistung. ...und die Grafikkarte.... ....naja.. da male ich doch lieber selber.
Wohnort: nahe Wolfsburg

Frequenz eures 'Performance Counters'

Beitrag 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
Zuletzt geändert von SBond am 25.08.2014 22:41, insgesamt 1-mal geändert.
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

:D
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Frequenz eures 'Performance Counters'

Beitrag von RSBasic »

High Resolution Performance Counter hat geschrieben:HRPC-Frequenz: 3.214619 MHz

Auflösung: 311.079 ns
Jahr: 2012
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
SBond
Beiträge: 266
Registriert: 22.05.2013 20:35
Computerausstattung: armseliger Laptop, mit wenig RAM und noch weniger CPU-Leistung. ...und die Grafikkarte.... ....naja.. da male ich doch lieber selber.
Wohnort: nahe Wolfsburg

Re: Frequenz eures 'Performance Counters'

Beitrag von SBond »

super.

danke dir :mrgreen:
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

:D
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Frequenz eures 'Performance Counters'

Beitrag 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 :|
Zuletzt geändert von STARGÅTE am 25.08.2014 23:14, insgesamt 2-mal geändert.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Derren
Beiträge: 557
Registriert: 23.07.2011 02:08

Re: Frequenz eures 'Performance Counters'

Beitrag 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
Signatur und so
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Frequenz eures 'Performance Counters'

Beitrag von Kiffi »

HRPC-Frequenz: 2.339531 MHz
Auflösung: 427.436 ns
Der Rechner ist von 2009

Grüße ... Peter
Hygge
Derren
Beiträge: 557
Registriert: 23.07.2011 02:08

Re: Frequenz eures 'Performance Counters'

Beitrag 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 :?
Signatur und so
SBond
Beiträge: 266
Registriert: 22.05.2013 20:35
Computerausstattung: armseliger Laptop, mit wenig RAM und noch weniger CPU-Leistung. ...und die Grafikkarte.... ....naja.. da male ich doch lieber selber.
Wohnort: nahe Wolfsburg

Re: Frequenz eures 'Performance Counters'

Beitrag von SBond »

sogar 14 MHz dabei. Ich dachte es liegt immer so im Bereich 2-4 MHz. ....verdammt... ich will einen neuen Rechner :mrgreen:
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:

Code: Alles auswählen

Int(Pow(10, 6))
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 <)
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

:D
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Frequenz eures 'Performance Counters'

Beitrag 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 :mrgreen:
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:

Code: Alles auswählen

Int(Pow(10, 6))
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 <)

Code: Alles auswählen

Debug 1e6
Bild
SBond
Beiträge: 266
Registriert: 22.05.2013 20:35
Computerausstattung: armseliger Laptop, mit wenig RAM und noch weniger CPU-Leistung. ...und die Grafikkarte.... ....naja.. da male ich doch lieber selber.
Wohnort: nahe Wolfsburg

Re: Frequenz eures 'Performance Counters'

Beitrag 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. :D
NicTheQuick hat geschrieben:

Code: Alles auswählen

Debug 1e6
omg :shock:
...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*
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

:D
Antworten