| 
					
				 | 
			
			
				@@ -64,6 +64,36 @@ static void BM_ErrorCreateAndSetStatus(benchmark::State& state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 BENCHMARK(BM_ErrorCreateAndSetStatus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void BM_ErrorCreateAndSetIntAndStr(benchmark::State& state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  while (state.KeepRunning()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GRPC_ERROR_UNREF(grpc_error_set_str( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        grpc_error_set_int(GRPC_ERROR_CREATE("GOAWAY received"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                           GRPC_ERROR_INT_HTTP2_ERROR, (intptr_t)0), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        GRPC_ERROR_STR_RAW_BYTES, "raw bytes")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+BENCHMARK(BM_ErrorCreateAndSetIntAndStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void BM_ErrorCreateAndSetIntLoop(benchmark::State& state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  grpc_error* error = GRPC_ERROR_CREATE("Error"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  int n = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  while (state.KeepRunning()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    error = grpc_error_set_int(error, GRPC_ERROR_INT_GRPC_STATUS, n++); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  GRPC_ERROR_UNREF(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+BENCHMARK(BM_ErrorCreateAndSetIntLoop); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void BM_ErrorCreateAndSetStrLoop(benchmark::State& state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  grpc_error* error = GRPC_ERROR_CREATE("Error"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const char* str = "hello"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  while (state.KeepRunning()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    error = grpc_error_set_str(error, GRPC_ERROR_STR_GRPC_MESSAGE, str); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  GRPC_ERROR_UNREF(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+BENCHMARK(BM_ErrorCreateAndSetStrLoop); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void BM_ErrorRefUnref(benchmark::State& state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_error* error = GRPC_ERROR_CREATE("Error"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   while (state.KeepRunning()) { 
			 |