Index: libcfa/src/concurrency/io.cfa
===================================================================
--- libcfa/src/concurrency/io.cfa	(revision 0ea6c5a7cb18833338f85081efacd0c41eeeabb7)
+++ libcfa/src/concurrency/io.cfa	(revision 038be329339961a3cec3bfe7f6650d5e05f14957)
@@ -177,8 +177,10 @@
 
 		// Initialize statistics
-		this.io.submit_q.stats.submit_avg.val = 0;
-		this.io.submit_q.stats.submit_avg.cnt = 0;
-		this.io.completion_q.stats.completed_avg.val = 0;
-		this.io.completion_q.stats.completed_avg.cnt = 0;
+		#if !defined(__CFA_NO_STATISTICS__)
+			this.io.submit_q.stats.submit_avg.val = 0;
+			this.io.submit_q.stats.submit_avg.cnt = 0;
+			this.io.completion_q.stats.completed_avg.val = 0;
+			this.io.completion_q.stats.completed_avg.cnt = 0;
+		#endif
 
 		// Create the poller thread
@@ -198,15 +200,19 @@
 
 		// print statistics
-		__cfaabi_bits_print_safe( STDERR_FILENO,
-			"----- I/O uRing Stats -----\n"
-			"- total submit calls  : %llu\n"
-			"- avg submit          : %lf\n"
-			"- total wait calls    : %llu\n"
-			"- avg completion/wait : %lf\n",
-			this.io.submit_q.stats.submit_avg.cnt,
-			((double)this.io.submit_q.stats.submit_avg.val) / this.io.submit_q.stats.submit_avg.cnt,
-			this.io.completion_q.stats.completed_avg.cnt,
-			((double)this.io.completion_q.stats.completed_avg.val) / this.io.completion_q.stats.completed_avg.cnt
-		);
+		#if !defined(__CFA_NO_STATISTICS__)
+			if(this.print_stats) {
+				__cfaabi_bits_print_safe( STDERR_FILENO,
+					"----- I/O uRing Stats -----\n"
+					"- total submit calls  : %llu\n"
+					"- avg submit          : %lf\n"
+					"- total wait calls    : %llu\n"
+					"- avg completion/wait : %lf\n",
+					this.io.submit_q.stats.submit_avg.cnt,
+					((double)this.io.submit_q.stats.submit_avg.val) / this.io.submit_q.stats.submit_avg.cnt,
+					this.io.completion_q.stats.completed_avg.cnt,
+					((double)this.io.completion_q.stats.completed_avg.val) / this.io.completion_q.stats.completed_avg.cnt
+				);
+			}
+		#endif
 
 		// Shutdown the io rings
@@ -257,5 +263,7 @@
 		// Nothing was new return 0
 		if (head == tail) {
-			ring.completion_q.stats.completed_avg.cnt += 1;
+			#if !defined(__CFA_NO_STATISTICS__)
+				ring.completion_q.stats.completed_avg.cnt += 1;
+			#endif
 			return 0;
 		}
@@ -282,6 +290,9 @@
 		__atomic_fetch_add( ring.completion_q.head, count, __ATOMIC_RELAXED );
 
-		ring.completion_q.stats.completed_avg.val += count;
-		ring.completion_q.stats.completed_avg.cnt += 1;
+		// Update statistics
+		#if !defined(__CFA_NO_STATISTICS__)
+			ring.completion_q.stats.completed_avg.val += count;
+			ring.completion_q.stats.completed_avg.cnt += 1;
+		#endif
 
 		return count;
@@ -377,6 +388,9 @@
 		}
 
-		ring.submit_q.stats.submit_avg.val += 1;
-		ring.submit_q.stats.submit_avg.cnt += 1;
+		// update statistics
+		#if !defined(__CFA_NO_STATISTICS__)
+			ring.submit_q.stats.submit_avg.val += 1;
+			ring.submit_q.stats.submit_avg.cnt += 1;
+		#endif
 
 		unlock(ring.submit_q.lock);
Index: libcfa/src/concurrency/kernel.cfa
===================================================================
--- libcfa/src/concurrency/kernel.cfa	(revision 0ea6c5a7cb18833338f85081efacd0c41eeeabb7)
+++ libcfa/src/concurrency/kernel.cfa	(revision 038be329339961a3cec3bfe7f6650d5e05f14957)
@@ -257,4 +257,8 @@
 	ready_queue{};
 	ready_queue_lock{};
+
+	#if !defined(__CFA_NO_STATISTICS__)
+		print_stats = false;
+	#endif
 
 	procs{ __get };
Index: libcfa/src/concurrency/kernel.hfa
===================================================================
--- libcfa/src/concurrency/kernel.hfa	(revision 0ea6c5a7cb18833338f85081efacd0c41eeeabb7)
+++ libcfa/src/concurrency/kernel.hfa	(revision 038be329339961a3cec3bfe7f6650d5e05f14957)
@@ -147,10 +147,12 @@
 
 	// Statistics
-	struct {
+	#if !defined(__CFA_NO_STATISTICS__)
 		struct {
-			unsigned long long int val;
-			unsigned long long int cnt;
-		} submit_avg;
-	} stats;
+			struct {
+				unsigned long long int val;
+				unsigned long long int cnt;
+			} submit_avg;
+		} stats;
+	#endif
 };
 
@@ -175,10 +177,12 @@
 
 	// Statistics
-	struct {
+	#if !defined(__CFA_NO_STATISTICS__)
 		struct {
-			unsigned long long int val;
-			unsigned long long int cnt;
-		} completed_avg;
-	} stats;
+			struct {
+				unsigned long long int val;
+				unsigned long long int cnt;
+			} completed_avg;
+		} stats;
+	#endif
 };
 
@@ -230,4 +234,8 @@
 		struct io_ring io;
 	#endif
+
+	#if !defined(__CFA_NO_STATISTICS__)
+		bool print_stats;
+	#endif
 };
 extern Duration default_preemption();
@@ -244,4 +252,10 @@
 static inline struct processor * active_processor() { return TL_GET( this_processor ); } // UNSAFE
 static inline struct cluster   * active_cluster  () { return TL_GET( this_processor )->cltr; }
+
+#if !defined(__CFA_NO_STATISTICS__)
+	static inline void print_stats_at_exit( cluster & this ) {
+		this.print_stats = true;
+	}
+#endif
 
 // Local Variables: //
