pg_test_timing: Add NLS
Also straighten out use of time unit abbreviations a bit. Reviewed-by: Michael Paquier <michael.paquier@gmail.com>
This commit is contained in:
parent
a39255d766
commit
59fa9d2d9d
|
@ -96,9 +96,9 @@
|
||||||
|
|
||||||
<screen>
|
<screen>
|
||||||
Testing timing overhead for 3 seconds.
|
Testing timing overhead for 3 seconds.
|
||||||
Per loop time including overhead: 35.96 nsec
|
Per loop time including overhead: 35.96 ns
|
||||||
Histogram of timing durations:
|
Histogram of timing durations:
|
||||||
< usec % of total count
|
< us % of total count
|
||||||
1 96.40465 80435604
|
1 96.40465 80435604
|
||||||
2 3.59518 2999652
|
2 3.59518 2999652
|
||||||
4 0.00015 126
|
4 0.00015 126
|
||||||
|
@ -109,9 +109,9 @@ Histogram of timing durations:
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Note that different units are used for the per loop time than the
|
Note that different units are used for the per loop time than the
|
||||||
histogram. The loop can have resolution within a few nanoseconds (nsec),
|
histogram. The loop can have resolution within a few nanoseconds (ns),
|
||||||
while the individual timing calls can only resolve down to one microsecond
|
while the individual timing calls can only resolve down to one microsecond
|
||||||
(usec).
|
(us).
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
</refsect2>
|
</refsect2>
|
||||||
|
@ -157,9 +157,9 @@ EXPLAIN ANALYZE SELECT COUNT(*) FROM t;
|
||||||
tsc hpet acpi_pm
|
tsc hpet acpi_pm
|
||||||
# echo acpi_pm > /sys/devices/system/clocksource/clocksource0/current_clocksource
|
# echo acpi_pm > /sys/devices/system/clocksource/clocksource0/current_clocksource
|
||||||
# pg_test_timing
|
# pg_test_timing
|
||||||
Per loop time including overhead: 722.92 nsec
|
Per loop time including overhead: 722.92 ns
|
||||||
Histogram of timing durations:
|
Histogram of timing durations:
|
||||||
< usec % of total count
|
< us % of total count
|
||||||
1 27.84870 1155682
|
1 27.84870 1155682
|
||||||
2 72.05956 2990371
|
2 72.05956 2990371
|
||||||
4 0.07810 3241
|
4 0.07810 3241
|
||||||
|
@ -170,7 +170,7 @@ Histogram of timing durations:
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
In this configuration, the sample <command>EXPLAIN ANALYZE</command> above
|
In this configuration, the sample <command>EXPLAIN ANALYZE</command> above
|
||||||
takes 115.9 ms. That's 1061 nsec of timing overhead, again a small multiple
|
takes 115.9 ms. That's 1061 ns of timing overhead, again a small multiple
|
||||||
of what's measured directly by this utility. That much timing overhead
|
of what's measured directly by this utility. That much timing overhead
|
||||||
means the actual query itself is only taking a tiny fraction of the
|
means the actual query itself is only taking a tiny fraction of the
|
||||||
accounted for time, most of it is being consumed in overhead instead. In
|
accounted for time, most of it is being consumed in overhead instead. In
|
||||||
|
@ -211,7 +211,7 @@ $ pg_test_timing
|
||||||
Testing timing overhead for 3 seconds.
|
Testing timing overhead for 3 seconds.
|
||||||
Per timing duration including loop overhead: 97.75 ns
|
Per timing duration including loop overhead: 97.75 ns
|
||||||
Histogram of timing durations:
|
Histogram of timing durations:
|
||||||
< usec % of total count
|
< us % of total count
|
||||||
1 90.23734 27694571
|
1 90.23734 27694571
|
||||||
2 9.75277 2993204
|
2 9.75277 2993204
|
||||||
4 0.00981 3010
|
4 0.00981 3010
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
# src/bin/pg_test_timing/nls.mk
|
||||||
|
CATALOG_NAME = pg_test_timing
|
||||||
|
AVAIL_LANGUAGES =
|
||||||
|
GETTEXT_FILES = pg_test_timing.c
|
|
@ -25,6 +25,7 @@ main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
uint64 loop_count;
|
uint64 loop_count;
|
||||||
|
|
||||||
|
set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_test_timing"));
|
||||||
progname = get_progname(argv[0]);
|
progname = get_progname(argv[0]);
|
||||||
|
|
||||||
handle_args(argc, argv);
|
handle_args(argc, argv);
|
||||||
|
@ -51,7 +52,7 @@ handle_args(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
if (strcmp(argv[1], "--help") == 0 || strcmp(argv[1], "-?") == 0)
|
if (strcmp(argv[1], "--help") == 0 || strcmp(argv[1], "-?") == 0)
|
||||||
{
|
{
|
||||||
printf("Usage: %s [-d DURATION]\n", progname);
|
printf(_("Usage: %s [-d DURATION]\n"), progname);
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
if (strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0)
|
if (strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0)
|
||||||
|
@ -71,7 +72,7 @@ handle_args(int argc, char *argv[])
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
fprintf(stderr, "Try \"%s --help\" for more information.\n",
|
fprintf(stderr, _("Try \"%s --help\" for more information.\n"),
|
||||||
progname);
|
progname);
|
||||||
exit(1);
|
exit(1);
|
||||||
break;
|
break;
|
||||||
|
@ -81,23 +82,26 @@ handle_args(int argc, char *argv[])
|
||||||
if (argc > optind)
|
if (argc > optind)
|
||||||
{
|
{
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: too many command-line arguments (first is \"%s\")\n",
|
_("%s: too many command-line arguments (first is \"%s\")\n"),
|
||||||
progname, argv[optind]);
|
progname, argv[optind]);
|
||||||
fprintf(stderr, "Try \"%s --help\" for more information.\n",
|
fprintf(stderr, _("Try \"%s --help\" for more information.\n"),
|
||||||
progname);
|
progname);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (test_duration > 0)
|
if (test_duration > 0)
|
||||||
{
|
{
|
||||||
printf("Testing timing overhead for %d seconds.\n", test_duration);
|
printf(ngettext("Testing timing overhead for %d second.\n",
|
||||||
|
"Testing timing overhead for %d seconds.\n",
|
||||||
|
test_duration),
|
||||||
|
test_duration);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: duration must be a positive integer (duration is \"%d\")\n",
|
_("%s: duration must be a positive integer (duration is \"%d\")\n"),
|
||||||
progname, test_duration);
|
progname, test_duration);
|
||||||
fprintf(stderr, "Try \"%s --help\" for more information.\n",
|
fprintf(stderr, _("Try \"%s --help\" for more information.\n"),
|
||||||
progname);
|
progname);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
@ -133,8 +137,8 @@ test_timing(int32 duration)
|
||||||
/* Did time go backwards? */
|
/* Did time go backwards? */
|
||||||
if (diff < 0)
|
if (diff < 0)
|
||||||
{
|
{
|
||||||
printf("Detected clock going backwards in time.\n");
|
fprintf(stderr, _("Detected clock going backwards in time.\n"));
|
||||||
printf("Time warp: %d microseconds\n", diff);
|
fprintf(stderr, _("Time warp: %d ms\n"), diff);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,7 +161,7 @@ test_timing(int32 duration)
|
||||||
|
|
||||||
INSTR_TIME_SUBTRACT(end_time, start_time);
|
INSTR_TIME_SUBTRACT(end_time, start_time);
|
||||||
|
|
||||||
printf("Per loop time including overhead: %0.2f nsec\n",
|
printf(_("Per loop time including overhead: %0.2f ns\n"),
|
||||||
INSTR_TIME_GET_DOUBLE(end_time) * 1e9 / loop_count);
|
INSTR_TIME_GET_DOUBLE(end_time) * 1e9 / loop_count);
|
||||||
|
|
||||||
return loop_count;
|
return loop_count;
|
||||||
|
@ -173,8 +177,8 @@ output(uint64 loop_count)
|
||||||
while (max_bit > 0 && histogram[max_bit] == 0)
|
while (max_bit > 0 && histogram[max_bit] == 0)
|
||||||
max_bit--;
|
max_bit--;
|
||||||
|
|
||||||
printf("Histogram of timing durations:\n");
|
printf(_("Histogram of timing durations:\n"));
|
||||||
printf("%6s %10s %10s\n", "< usec", "% of total", "count");
|
printf("%6s %10s %10s\n", _("< us"), _("% of total"), _("count"));
|
||||||
|
|
||||||
for (i = 0; i <= max_bit; i++)
|
for (i = 0; i <= max_bit; i++)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue