diff --git a/bin/calculate_floprate.py b/bin/calculate_floprate.py
index 49b3136128617d98eb42af7c2487f35384709d4f..88f77a2dcb41359da65d18df62e045b02522e2a1 100644
--- a/bin/calculate_floprate.py
+++ b/bin/calculate_floprate.py
@@ -9,7 +9,7 @@ def parse_data():
     ops = frame[frame.what != "time"]
 
     # Here we should take 'min', but right now there are some zeroes written
-    timedata = time.groupby(('exec', 'kernel'))['value'].max()
+    timedata = time.groupby(('exec', 'kernel'))['value'].min()
     opsdata = ops.groupby(('exec', 'kernel'))['value'].max()
 
     return timedata, opsdata
diff --git a/dune/perftool/common/timer.hh b/dune/perftool/common/timer.hh
index 8f46c8a5746bf5043ac1dca67976a56da6ff547e..159d9c5ce4296a130897fac2ebd5d2008252ce8c 100644
--- a/dune/perftool/common/timer.hh
+++ b/dune/perftool/common/timer.hh
@@ -71,12 +71,14 @@
 
 #ifdef ENABLE_COUNTER
 
-#define DUMP_TIMER(name,os,reset)                       \
-  os << exec << " " << #name << " time " << HP_TIMER_ELAPSED(name) << std::endl; \
+#define DUMP_TIMER(name,os,reset)\
+  if (HP_TIMER_ELAPSED(name) > 1e-12) \
+    os << exec << " " << #name << " time " << HP_TIMER_ELAPSED(name) << std::endl; \
   HP_TIMER_OPCOUNTERS(name).reportOperations(os,exec,#name,reset);
 
 #define DUMP_AND_ACCUMULATE_TIMER(name,os,reset,time,ops)  \
-  os << exec << " " << #name << " time " << HP_TIMER_ELAPSED(name) << std::endl; \
+  if (HP_TIMER_ELAPSED(name) > 1e-12) \
+    os << exec << " " << #name << " time " << HP_TIMER_ELAPSED(name) << std::endl; \
   time += HP_TIMER_ELAPSED(name); \
   ops += HP_TIMER_OPCOUNTERS(name); \
   HP_TIMER_OPCOUNTERS(name).reportOperations(os,exec,#name,reset);
@@ -84,11 +86,13 @@
 #elif defined ENABLE_HP_TIMERS
 
 #define DUMP_TIMER(name,os,reset)                       \
-  os << exec << " " << #name << " time " << HP_TIMER_ELAPSED(name) << std::endl; \
+  if (HP_TIMER_ELAPSED(name) > 1e-12) \
+    os << exec << " " << #name << " time " << HP_TIMER_ELAPSED(name) << std::endl; \
   if (reset) HP_TIMER_RESET(name);
 
 #define DUMP_AND_ACCUMULATE_TIMER(name,os,reset,time,ops)  \
-  os << exec << " " << #name << " time " << HP_TIMER_ELAPSED(name) << std::endl; \
+  if (HP_TIMER_ELAPSED(name) > 1e-12) \
+    os << exec << " " << #name << " time " << HP_TIMER_ELAPSED(name) << std::endl; \
   time += HP_TIMER_ELAPSED(name); \
   if (reset) HP_TIMER_RESET(name);