Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
P
postgres-lambda-diff
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Jakob Huber
postgres-lambda-diff
Commits
7341a8ca
Commit
7341a8ca
authored
14 years ago
by
Bruce Momjian
Browse files
Options
Downloads
Patches
Plain Diff
Report test_fynsc times in tests per second, instead of total seconds.
parent
a520b78f
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/tools/fsync/test_fsync.c
+32
-23
32 additions, 23 deletions
src/tools/fsync/test_fsync.c
with
32 additions
and
23 deletions
src/tools/fsync/test_fsync.c
+
32
−
23
View file @
7341a8ca
/*
* $PostgreSQL: pgsql/src/tools/fsync/test_fsync.c,v 1.2
7
2010/0
2/26 02:01:3
9 momjian Exp $
* $PostgreSQL: pgsql/src/tools/fsync/test_fsync.c,v 1.2
8
2010/0
7/04 01:50:2
9 momjian Exp $
*
*
* test_fsync.c
...
...
@@ -34,6 +34,8 @@
#define LABEL_FORMAT "\t%-30s"
int
loops
=
10000
;
void
die
(
char
*
str
);
void
print_elapse
(
struct
timeval
start_t
,
struct
timeval
stop_t
);
...
...
@@ -43,8 +45,7 @@ main(int argc, char *argv[])
struct
timeval
start_t
;
struct
timeval
stop_t
;
int
tmpfile
,
i
,
loops
=
5000
;
i
;
char
*
full_buf
=
(
char
*
)
malloc
(
XLOG_SEG_SIZE
),
*
buf
;
char
*
filename
=
FSYNC_FILENAME
;
...
...
@@ -73,10 +74,12 @@ main(int argc, char *argv[])
buf
=
(
char
*
)
TYPEALIGN
(
ALIGNOF_XLOG_BUFFER
,
full_buf
);
printf
(
"Loops = %d
\n\n
"
,
loops
);
/*
* Simple write
*/
printf
(
"Simple
8k
write timing:
\n
"
);
printf
(
"Simple write timing:
\n
"
);
/* write only */
gettimeofday
(
&
start_t
,
NULL
);
for
(
i
=
0
;
i
<
loops
;
i
++
)
...
...
@@ -88,13 +91,13 @@ main(int argc, char *argv[])
close
(
tmpfile
);
}
gettimeofday
(
&
stop_t
,
NULL
);
printf
(
LABEL_FORMAT
,
"write"
);
printf
(
LABEL_FORMAT
,
"
8k
write"
);
print_elapse
(
start_t
,
stop_t
);
/*
* Compare file sync methods with one 8k write
*/
printf
(
"
\n
Compare file sync methods using one
8k
write:
\n
"
);
printf
(
"
\n
Compare file sync methods using one write:
\n
"
);
#ifdef OPEN_DATASYNC_FLAG
/* open_dsync, write */
...
...
@@ -110,7 +113,7 @@ main(int argc, char *argv[])
}
gettimeofday
(
&
stop_t
,
NULL
);
close
(
tmpfile
);
printf
(
LABEL_FORMAT
,
"open_datasync write"
);
printf
(
LABEL_FORMAT
,
"open_datasync
8k
write"
);
print_elapse
(
start_t
,
stop_t
);
#else
printf
(
"
\t
(open_datasync unavailable)
\n
"
);
...
...
@@ -130,7 +133,7 @@ main(int argc, char *argv[])
}
gettimeofday
(
&
stop_t
,
NULL
);
close
(
tmpfile
);
printf
(
LABEL_FORMAT
,
"open_sync write"
);
printf
(
LABEL_FORMAT
,
"open_sync
8k
write"
);
print_elapse
(
start_t
,
stop_t
);
#else
printf
(
"
\t
(open_sync unavailable)
\n
"
);
...
...
@@ -151,7 +154,7 @@ main(int argc, char *argv[])
}
gettimeofday
(
&
stop_t
,
NULL
);
close
(
tmpfile
);
printf
(
LABEL_FORMAT
,
"write, fdatasync"
);
printf
(
LABEL_FORMAT
,
"
8k
write, fdatasync"
);
print_elapse
(
start_t
,
stop_t
);
#else
printf
(
"
\t
(fdatasync unavailable)
\n
"
);
...
...
@@ -172,13 +175,13 @@ main(int argc, char *argv[])
}
gettimeofday
(
&
stop_t
,
NULL
);
close
(
tmpfile
);
printf
(
LABEL_FORMAT
,
"write, fsync"
);
printf
(
LABEL_FORMAT
,
"
8k
write, fsync"
);
print_elapse
(
start_t
,
stop_t
);
/*
* Compare file sync methods with two 8k write
*/
printf
(
"
\n
Compare file sync methods using two
8k
writes:
\n
"
);
printf
(
"
\n
Compare file sync methods using two writes:
\n
"
);
#ifdef OPEN_DATASYNC_FLAG
/* open_dsync, write */
...
...
@@ -196,7 +199,7 @@ main(int argc, char *argv[])
}
gettimeofday
(
&
stop_t
,
NULL
);
close
(
tmpfile
);
printf
(
LABEL_FORMAT
,
"open_datasync
write,
write"
);
printf
(
LABEL_FORMAT
,
"
2
open_datasync
8k
write
s
"
);
print_elapse
(
start_t
,
stop_t
);
#else
printf
(
"
\t
(open_datasync unavailable)
\n
"
);
...
...
@@ -218,7 +221,7 @@ main(int argc, char *argv[])
}
gettimeofday
(
&
stop_t
,
NULL
);
close
(
tmpfile
);
printf
(
LABEL_FORMAT
,
"open_sync
write,
write"
);
printf
(
LABEL_FORMAT
,
"
2
open_sync
8k
write
s
"
);
print_elapse
(
start_t
,
stop_t
);
#endif
...
...
@@ -239,7 +242,7 @@ main(int argc, char *argv[])
}
gettimeofday
(
&
stop_t
,
NULL
);
close
(
tmpfile
);
printf
(
LABEL_FORMAT
,
"write, write, fdatasync"
);
printf
(
LABEL_FORMAT
,
"
8k
write,
8k
write, fdatasync"
);
print_elapse
(
start_t
,
stop_t
);
#else
printf
(
"
\t
(fdatasync unavailable)
\n
"
);
...
...
@@ -262,7 +265,7 @@ main(int argc, char *argv[])
}
gettimeofday
(
&
stop_t
,
NULL
);
close
(
tmpfile
);
printf
(
LABEL_FORMAT
,
"write, write, fsync"
);
printf
(
LABEL_FORMAT
,
"
8k
write,
8k
write, fsync"
);
print_elapse
(
start_t
,
stop_t
);
/*
...
...
@@ -284,7 +287,7 @@ main(int argc, char *argv[])
}
gettimeofday
(
&
stop_t
,
NULL
);
close
(
tmpfile
);
printf
(
LABEL_FORMAT
,
"
16k
open_sync write"
);
printf
(
LABEL_FORMAT
,
"open_sync
16k
write"
);
print_elapse
(
start_t
,
stop_t
);
/* Two 8k open_sync writes */
...
...
@@ -302,7 +305,7 @@ main(int argc, char *argv[])
}
gettimeofday
(
&
stop_t
,
NULL
);
close
(
tmpfile
);
printf
(
LABEL_FORMAT
,
"2
8k
open_sync writes"
);
printf
(
LABEL_FORMAT
,
"2 open_sync
8k
writes"
);
print_elapse
(
start_t
,
stop_t
);
#else
printf
(
"
\t
(open_sync unavailable)
\n
"
);
...
...
@@ -311,8 +314,9 @@ main(int argc, char *argv[])
/*
* Fsync another file descriptor?
*/
printf
(
"
\n
Compare fsync times on write() and new file descriptors (if the times
\n
"
);
printf
(
"are similar, fsync() can sync data written on a different descriptor):
\n
"
);
printf
(
"
\n
Test if fsync on non-write file descriptor is honored:
\n
"
);
printf
(
"(If the times are similar, fsync() can sync data written
\n
"
);
printf
(
"on a different descriptor.)
\n
"
);
/* write, fsync, close */
gettimeofday
(
&
start_t
,
NULL
);
...
...
@@ -331,7 +335,7 @@ main(int argc, char *argv[])
close
(
tmpfile
);
}
gettimeofday
(
&
stop_t
,
NULL
);
printf
(
LABEL_FORMAT
,
"write, fsync, close"
);
printf
(
LABEL_FORMAT
,
"
8k
write, fsync, close"
);
print_elapse
(
start_t
,
stop_t
);
/* write, close, fsync */
...
...
@@ -351,7 +355,7 @@ main(int argc, char *argv[])
close
(
tmpfile
);
}
gettimeofday
(
&
stop_t
,
NULL
);
printf
(
LABEL_FORMAT
,
"write, close, fsync"
);
printf
(
LABEL_FORMAT
,
"
8k
write, close, fsync"
);
print_elapse
(
start_t
,
stop_t
);
/* cleanup */
...
...
@@ -364,14 +368,19 @@ main(int argc, char *argv[])
void
print_elapse
(
struct
timeval
start_t
,
struct
timeval
stop_t
)
{
double
total_time
,
per_second
;
if
(
stop_t
.
tv_usec
<
start_t
.
tv_usec
)
{
stop_t
.
tv_sec
--
;
stop_t
.
tv_usec
+=
1000000
;
}
printf
(
"%3ld.%06ld
\n
"
,
(
long
)
(
stop_t
.
tv_sec
-
start_t
.
tv_sec
),
(
long
)
(
stop_t
.
tv_usec
-
start_t
.
tv_usec
));
total_time
=
(
stop_t
.
tv_sec
-
start_t
.
tv_sec
)
+
(
stop_t
.
tv_usec
-
start_t
.
tv_usec
)
*
0
.
000001
;
per_second
=
loops
/
total_time
;
printf
(
"%9.3f/second
\n
"
,
per_second
);
}
void
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment