De tijdbibliotheek

De tijdbibliotheek

Een blog over multithreading in moderne C++, maar niet schrijven over de nieuwe tijdbibliotheek is onvolledig. Vooral omdat ik de tijdbibliotheek in mijn berichten vaak gebruikte om de prestaties van shortcode-fragmenten te meten. Daarom geef ik in dit bericht een overzicht van de componenten van de tijdbibliotheek:tijdstip, tijdsduur en klok. Ik zal aanvullende berichten schrijven over elk van deze drie componenten.

Zoals altijd is de praktijk de theorie.

Tijdstip, tijdsduur en klokken

De tijdbibliotheek bestaat uit drie delen die van elkaar afhankelijk zijn.

  • Tijdstip :Het tijdstip wordt gegeven door het startpunt - het zogenaamde tijdperk - en de tijdsduur, die verwijst naar het tijdperk.
  • Tijdsduur: De tijdsduur is het verschil tussen twee tijdstippen. Het wordt gemeten in het aantal tikken in de tijd.
  • Klok :De klok bestaat uit een startpunt en een tijdtik. Met deze informatie kunt u de huidige tijd berekenen.

U kunt tijdstippen vergelijken. U krijgt een nieuw tijdstip wanneer u een tijdsduur aan een tijdstip toevoegt. De tijdtik is de nauwkeurigheid van de klok waarin u de tijdsduur meet. De geboorte van Christus in mijn cultuur is het starttijdstip en een jaar, een typische tijdtik.

Ik zal de drie concepten gebruiken om het leven van de dode vader van de programmeertaal C in 2011 te presenteren:Dennis Ritchie. Omwille van de eenvoud ben ik alleen geïnteresseerd in de jaren.

De tijdstippen 1941 en 2011 worden bepaald door de geboorte van Christus en de tijdsduur. Daarom is de geboorte van Christus ons tijdperk. Natuurlijk is het tijdperk ook een tijdstip. Als ik 1941 van 2011 aftrek, krijg ik de tijdsduur. Deze duur van het dubbeltje wordt gemeten met het nauwkeurigheidsjaar. Dennis Ritchie werd 70 jaar.

Voordat ik in een volgende post dieper in de tijdbibliotheek duik, een paar opmerkingen. Een tijdspunt bestaat uit een klok en een tijdsduur. C++ heeft de klokken std::chrono::system_clock, std::chrono::steady_clock en std::chrono::high_resolution_clock. De tijdsduur kan positief en negatief zijn. De bekende tijdsduren als std::chrono::seconds, std::chrono::minutes of std::chrono::hours zijn vooraf gedefinieerd in C++. Bovendien biedt C++14 tijdletters:1s, 1min of 1h. De klokken verschillen in nauwkeurigheid (tijdtik) en tijdvak. Hoewel het niet gedefinieerd is, begint std::chrono::system_clock meestal op 1.1.1970. Elke klok heeft nu een methode om de huidige tijd (tijdspunt) terug te geven.

Wat nu?

In de volgende post zal ik schrijven over het concept van tijdstippen. Daarom zal ik in verschillende tijdtikjes berekenen hoeveel tijd er is verstreken sinds 1.1.1970.