{-# 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