diff --git a/src/bin/pg_test_timing/pg_test_timing.c b/src/bin/pg_test_timing/pg_test_timing.c
index 2f1ab7cd6085dc1cb20ac89f9b40ba02f081bd86..6e2fd1ab8c7abfdb6898b3fc98dbe2f0122c98da 100644
--- a/src/bin/pg_test_timing/pg_test_timing.c
+++ b/src/bin/pg_test_timing/pg_test_timing.c
@@ -172,13 +172,22 @@ output(uint64 loop_count)
 {
 	int64		max_bit = 31,
 				i;
+	char	   *header1 = _("< us");
+	char	   *header2 = /* xgettext:no-c-format */ _("% of total");
+	char	   *header3 = _("count");
+	int			len1 = strlen(header1);
+	int			len2 = strlen(header2);
+	int			len3 = strlen(header3);
 
 	/* find highest bit value */
 	while (max_bit > 0 && histogram[max_bit] == 0)
 		max_bit--;
 
 	printf(_("Histogram of timing durations:\n"));
-	printf("%6s   %10s %10s\n", _("< us"), _("% of total"), _("count"));
+	printf("%*s   %*s %*s\n",
+		   Max(6, len1), header1,
+		   Max(10, len2), header2,
+		   Max(10, len3), header3);
 
 	for (i = 0; i <= max_bit; i++)
 	{
@@ -186,7 +195,9 @@ output(uint64 loop_count)
 
 		/* lame hack to work around INT64_FORMAT deficiencies */
 		snprintf(buf, sizeof(buf), INT64_FORMAT, histogram[i]);
-		printf("%6ld    %9.5f %10s\n", 1l << i,
-			   (double) histogram[i] * 100 / loop_count, buf);
+		printf("%*ld    %*.5f %*s\n",
+			   Max(6, len1), 1l << i,
+			   Max(10, len2) - 1, (double) histogram[i] * 100 / loop_count,
+			   Max(10, len3), buf);
 	}
 }