Rocksolid Light

groups  faq  privacy  How to post  login

Message-ID:  

Stay the curse.


rocksolid / de.comp.os.unix.programming / Re: Timestamp Counter Frequenz unter /proc

SubjectAuthor
* Re: Timestamp Counter Frequenz unter /procJakob Hirsch
`- Re: Timestamp Counter Frequenz unter /procBonita Montero

1
Subject: Re: Timestamp Counter Frequenz unter /proc
From: Jakob Hirsch
Newsgroups: de.comp.os.unix.programming
Organization: Ass Kickers United
Date: Mon, 19 Jun 2023 15:13 UTC
References: 1
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!3.eu.feeder.erje.net!feeder.erje.net!news-2.dfn.de!news.dfn.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: jh.expir...@plonk.de (Jakob Hirsch)
Newsgroups: de.comp.os.unix.programming
Subject: Re: Timestamp Counter Frequenz unter /proc
Date: Mon, 19 Jun 2023 17:13:03 +0200
Organization: Ass Kickers United
Lines: 21
Message-ID: <kfb9jvFarofU1@mid.individual.net>
References: <tqomrl$5c05$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: individual.net d0YKyD4QCtJMhCQW2QUugwIyrXIROASDFHHHty2PuL+RJ5APbu
Cancel-Lock: sha1:kLpS71cwjp5hIXkzvFcoN5tD2WQ=
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.8.1.23)
Gecko/20090812 Thunderbird/2.0.0.23 Mnenhy/0.7.6.666
Content-Language: en-US
In-Reply-To: <tqomrl$5c05$1@dont-email.me>
View all headers

Hm, bisschen her...

On 2023-01-24 14:36, Bonita Montero wrote:
> habe ich das Problem, dass die Items mit hoher Frequenz dort eingefügt
> werden und die Verarbeitungs-Semantik bei den Consumern so minimal ist,
> dass diese auch mit der entsprechend hohen Frequenz abgebommen werden.

Hm, es gibt m.W. dafür auch schlankere Konzepte (lockless P/C queue),
vielleicht macht es das etwas einfacher.

> das dennoch. Dazu wollte ich den Timestamp Counter der CPU auslesen,

direkt?
Dafür gibt es üblicherweise System-Aufrufe, siehe
https://en.wikipedia.org/wiki/Time_Stamp_Counter.
Unter Windows ist das QueryPerformanceCounter und
QueryPerformanceFrequency, unter Linux spuckt dir
clock_gettime(CLOCK_MONOTONIC) direkt die Werte aus (mit clock_getres
könntest du dir auch noch die Auflösung holen).
Und es gibt bestimmt auch genug libs für C++ die das schön in einer
StopWatch-Klasse kapseln...

Subject: Re: Timestamp Counter Frequenz unter /proc
From: Bonita Montero
Newsgroups: de.comp.os.unix.programming
Organization: A noiseless patient Spider
Date: Wed, 21 Jun 2023 16:35 UTC
References: 1 2
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Bonita.M...@gmail.com (Bonita Montero)
Newsgroups: de.comp.os.unix.programming
Subject: Re: Timestamp Counter Frequenz unter /proc
Date: Wed, 21 Jun 2023 18:35:21 +0200
Organization: A noiseless patient Spider
Lines: 60
Message-ID: <u6v8s8$2v0l4$1@dont-email.me>
References: <tqomrl$5c05$1@dont-email.me> <kfb9jvFarofU1@mid.individual.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 21 Jun 2023 16:35:20 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="1ba7c9f6cb98ec3afb40817e58ff946e";
logging-data="3113636"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18RCjyXU9PHl1MdVOs0L01yQBBh8PgCLaY="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.12.0
Cancel-Lock: sha1:mLy8GGRGeX34SP93Dj8UxWkMyjk=
Content-Language: de-DE
In-Reply-To: <kfb9jvFarofU1@mid.individual.net>
View all headers

Am 19.06.2023 um 17:13 schrieb Jakob Hirsch:
> Hm, bisschen her...
>
> On 2023-01-24 14:36, Bonita Montero wrote:
>> habe ich das Problem, dass die Items mit hoher Frequenz dort eingefügt
>> werden und die Verarbeitungs-Semantik bei den Consumern so minimal ist,
>> dass diese auch mit der entsprechend hohen Frequenz abgebommen werden.
>
> Hm, es gibt m.W. dafür auch schlankere Konzepte (lockless P/C queue),
> vielleicht macht es das etwas einfacher.

Lockless queues haben sich nie durchgesetzt weil man die pollen muss,
was ein No-Go ist. Das Problem ist dann halt, dass der Producer auch
weg-schedult werden kann, dass der Consumer sich im Endeffekt dumm
und dämlich pollt bis der wieder mal an der Reihe war.

> Dafür gibt es üblicherweise System-Aufrufe, ...

Erzähl mir mal welche. Unter Windows kann ich den Basis-Takt aus der
Registry auslesen, unter Linux weiß ich nicht wo ich den unter /proc
finden kann. /proc/cpuinfo ist keine zuverlässige Quelle, denn da
findet man das ggf. nur im Prozessor-String.

> Unter Windows ist das QueryPerformanceCounter und
> QueryPerformanceFrequency, ...

Die ist auf x86ern immer 10MHz.

> unter Linux spuckt dir clock_gettime(CLOCK_MONOTONIC) ...

CLOCK_MONOTINIC_RAW bedient sich direkt am TSC.

>direkt die Werte aus (mit clock_getres könntest du dir auch noch die Auflösung
> holen).Und es gibt bestimmt auch genug libs für C++ die das schön in einer
> StopWatch-Klasse kapseln...

Ich hab jetzt mal geschaut wie effizient die Abfrage von
CLOCK_MONOTINIC_RAW auf meinem Linux-Rechner ist (AMD TR 3990X):

#include <iostream>
#include <iomanip>
#include <chrono>
#include <time.h>

using namespace std;
using namespace chrono;

int main()
{ auto start = high_resolution_clock::now();
constexpr uint64_t ROUNDS = 10'000'000;
timespec ts;
for( uint64_t r = ROUNDS; r--; )
clock_gettime( CLOCK_MONOTONIC_RAW, &ts );
double ns = (double)duration_cast<nanoseconds>(
high_resolution_clock::now() - start ).count() / ROUNDS;
cout << ns << endl;
}

Das zieht dann ca. 19ns, damit kann man leben.


rocksolid / de.comp.os.unix.programming / Re: Timestamp Counter Frequenz unter /proc

1
server_pubkey.txt

rocksolid light 0.9.12
clearnet tor