diff options
author | Dan McGee <dan@archlinux.org> | 2011-10-03 10:54:08 -0500 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2011-10-13 20:59:16 -0500 |
commit | 8605284e0d1b70d9845ca4c6362d7d451f503d32 (patch) | |
tree | 91068c025f1b0c38d14a13132208dddf2b5aee1e /src/pacman/sync.c | |
parent | 9934052b54fd4dcd2339a2beb87ccc81b5e144bd (diff) | |
download | pacman-8605284e0d1b70d9845ca4c6362d7d451f503d32.tar.xz |
Use puts() instead of no-op printf() where applicable
This replaces several printf calls of the following styles:
printf("%s", ...);
printf("some fixed string");
printf("x");
We can use either fputs() or putchar() here to do the same thing
without incurring the overhead of the printf format parser.
The biggest gain here comes when we are calling the print function in a
loop repeatedly; notably when printing local package files.
$ /usr/bin/time ./pacman-before -Ql | md5sum
0.25user 0.04system 0:00.30elapsed 98%CPU
$ /usr/bin/time ./pacman-after -Ql | md5sum
0.17user 0.06system 0:00.25elapsed 94%CPU
$ /usr/bin/time ./pacman-before -Qlq | md5sum
0.20user 0.05system 0:00.26elapsed 98%CPU
$ /usr/bin/time ./pacman-after -Qlq | md5sum
0.15user 0.05system 0:00.23elapsed 93%CPU
So '-Ql' shows a 17% improvement while '-Qlq' shows a 13% improvement on
382456 total files.
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'src/pacman/sync.c')
-rw-r--r-- | src/pacman/sync.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/pacman/sync.c b/src/pacman/sync.c index dd8eb74c..925257ed 100644 --- a/src/pacman/sync.c +++ b/src/pacman/sync.c @@ -359,22 +359,22 @@ static int sync_search(alpm_list_t *syncs, alpm_list_t *targets) printf("%s/%s %s", alpm_db_get_name(db), alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg)); } else { - printf("%s", alpm_pkg_get_name(pkg)); + fputs(alpm_pkg_get_name(pkg), stdout); } if(!config->quiet) { if((grp = alpm_pkg_get_groups(pkg)) != NULL) { alpm_list_t *k; - printf(" ("); + fputs(" (", stdout); for(k = grp; k; k = alpm_list_next(k)) { const char *group = k->data; - printf("%s", group); + fputs(group, stdout); if(alpm_list_next(k)) { /* only print a spacer if there are more groups */ - printf(" "); + putchar(' '); } } - printf(")"); + putchar(')'); } print_installed(db_local, pkg); |