diff --git a/contrib/perf.py b/contrib/perf.py
index 6f791ca70640cabb44cd46e75bb5d50b41c8be7b_Y29udHJpYi9wZXJmLnB5..e36569bd9e289ae55c1accdde85f7e43577367dd_Y29udHJpYi9wZXJmLnB5 100644
--- a/contrib/perf.py
+++ b/contrib/perf.py
@@ -591,7 +591,9 @@
     timer(d)
     fm.end()
 
-@command('perfphases', [], "")
+@command('perfphases',
+         [('', 'full', False, 'include file reading time too'),
+         ], "")
 def perfphases(ui, repo, **opts):
     """benchmark phasesets computation"""
     timer, fm = gettimer(ui, opts)
@@ -595,5 +597,6 @@
 def perfphases(ui, repo, **opts):
     """benchmark phasesets computation"""
     timer, fm = gettimer(ui, opts)
-    phases = repo._phasecache
+    _phases = repo._phasecache
+    full = opts.get('full')
     def d():
@@ -599,4 +602,8 @@
     def d():
+        phases = _phases
+        if full:
+            clearfilecache(repo, '_phasecache')
+            phases = repo._phasecache
         phases.invalidate()
         phases.loadphaserevs(repo)
     timer(d)