diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+0.8.8.2
+=======
+* Performance improvements [#152](https://github.com/Soostone/katip/pull/152)
+
 0.8.8.1
 =======
 * Improve logging performance (4x) via inlining [#151](https://github.com/Soostone/katip/pull/151)
diff --git a/katip.cabal b/katip.cabal
--- a/katip.cabal
+++ b/katip.cabal
@@ -1,5 +1,5 @@
 name:                katip
-version:             0.8.8.1
+version:             0.8.8.2
 synopsis:            A structured logging framework.
 description:
   Katip is a structured logging framework. See README.md for more details.
diff --git a/src/Katip/Core.hs b/src/Katip/Core.hs
--- a/src/Katip/Core.hs
+++ b/src/Katip/Core.hs
@@ -69,14 +69,15 @@
 #endif
 import           Data.List
 import qualified Data.Map.Strict                   as M
-import           Data.Maybe                        (fromMaybe)
 import           Data.Semigroup                    as SG
 import qualified Data.Set                          as Set
 import           Data.String
 import           Data.String.Conv
 import           Data.Text                         (Text)
 import qualified Data.Text                         as T
+import qualified Data.Text.Lazy                    as TL
 import qualified Data.Text.Lazy.Builder            as B
+import qualified Data.Text.Lazy.Builder.Int        as B
 import           Data.Time
 import           GHC.Generics                      hiding (to)
 #if MIN_VERSION_base(4, 8, 0)
@@ -96,6 +97,12 @@
 import           System.Posix
 #endif
 
+#if MIN_VERSION_base(4, 19, 0)
+import           GHC.Conc.Sync                     (fromThreadId)
+#else
+import           Data.Maybe                        (fromMaybe)
+#endif
+
 -------------------------------------------------------------------------------
 
 
@@ -106,6 +113,8 @@
               _   -> Nothing -- Ambiguous parse
 {-# INLINE readMay #-}
 
+decimalToText :: Integral a => a -> Text
+decimalToText = TL.toStrict . B.toLazyText . B.decimal
 
 -------------------------------------------------------------------------------
 -- | Represents a heirarchy of namespaces going from general to
@@ -269,9 +278,13 @@
 
 
 mkThreadIdText :: ThreadId -> ThreadIdText
+#if MIN_VERSION_base(4, 19, 0)
+mkThreadIdText = ThreadIdText . decimalToText . fromThreadId
+#else
 mkThreadIdText = ThreadIdText . stripPrefix' "ThreadId " . T.pack . show
   where
     stripPrefix' pfx t = fromMaybe t (T.stripPrefix pfx t)
+#endif
 {-# INLINE mkThreadIdText #-}
 
 -------------------------------------------------------------------------------
@@ -407,7 +420,7 @@
 
 
 processIDToText :: ProcessID -> Text
-processIDToText = toS . show
+processIDToText = decimalToText
 {-# INLINE processIDToText #-}
 
 
