packages feed

hs-opentelemetry-propagator-datadog-0.0.1.0: benchmark/header-codec/main.hs

{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -Wno-orphans #-}

import Control.DeepSeq (NFData)
import qualified Criterion.Main as C
import qualified Data.ByteString.Short as SB
import OpenTelemetry.Propagator.Datadog.Internal
import OpenTelemetry.Trace.Id (TraceId)
import qualified String


main :: IO ()
main =
  C.defaultMain
    [ C.bgroup
        "newTraceIdFromHeader"
        [ C.bench "new" $ C.nf newTraceIdFromHeader "1"
        , C.bench "old" $ C.nf String.newTraceIdFromHeader "1"
        ]
    , C.bgroup "newHeaderFromTraceId" $
        let value = SB.pack [0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 10, 11, 12, 13, 14, 15]
        in [ C.bench "new" $ C.nf newHeaderFromTraceId value
           , C.bench "old" $ C.nf String.newHeaderFromTraceId value
           ]
    ]


instance NFData TraceId