diff --git a/mercurial/configitems.py b/mercurial/configitems.py
index 49c7b701fdc2a8659b6f752aef507764d40ed5d0_bWVyY3VyaWFsL2NvbmZpZ2l0ZW1zLnB5..89703e6151e72be5f65876dc9f81c90525e13c53_bWVyY3VyaWFsL2NvbmZpZ2l0ZW1zLnB5 100644
--- a/mercurial/configitems.py
+++ b/mercurial/configitems.py
@@ -923,7 +923,7 @@
     default='hotpath',
 )
 coreconfigitem('profiling', 'time-track',
-    default='real',
+    default=dynamicdefault,
 )
 coreconfigitem('profiling', 'type',
     default='stat',
diff --git a/mercurial/profiling.py b/mercurial/profiling.py
index 49c7b701fdc2a8659b6f752aef507764d40ed5d0_bWVyY3VyaWFsL3Byb2ZpbGluZy5weQ==..89703e6151e72be5f65876dc9f81c90525e13c53_bWVyY3VyaWFsL3Byb2ZpbGluZy5weQ== 100644
--- a/mercurial/profiling.py
+++ b/mercurial/profiling.py
@@ -101,7 +101,8 @@
     else:
         ui.warn(_("invalid sampling frequency '%s' - ignoring\n") % freq)
 
-    track = ui.config('profiling', 'time-track')
+    track = ui.config('profiling', 'time-track',
+                      pycompat.iswindows and 'cpu' or 'real')
     statprof.start(mechanism='thread', track=track)
 
     try: