From 7a28ce25a69d3177879d134b87eeff5f754638b5 Mon Sep 17 00:00:00 2001 From: Bond_009 Date: Sat, 5 Dec 2020 15:20:27 +0100 Subject: Remove shell overhead for benchmarking --- .gitignore | 3 +++ 1/part1.c | 2 +- 1/part2.c | 2 +- 1/part2_fast.c | 2 +- 2/part1.c | 2 +- 2/part2.c | 2 +- 3/part1.c | 2 +- 3/part2.c | 3 ++- 4/part1.c | 2 +- 4/part2.c | 2 +- 5/part1.c | 2 +- 5/part2.c | 4 +++- 5/part2_fast.c | 4 +++- prepare | 7 ++++++- run | Bin 45 -> 732496 bytes 15 files changed, 26 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index d80097a..a16de4f 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,6 @@ dkms.conf # Executables part1 part2 +part1_fast +part2_fast +run diff --git a/1/part1.c b/1/part1.c index 07f1251..1b825df 100644 --- a/1/part1.c +++ b/1/part1.c @@ -20,7 +20,7 @@ int repair(const int * arr) int main(int argc, char *argv[]) { - FILE *file = fopen(argv[1], "r"); + FILE *file = fopen(argv[argc - 1], "r"); if (!file) { return 1; } diff --git a/1/part2.c b/1/part2.c index adf487c..9c10b61 100644 --- a/1/part2.c +++ b/1/part2.c @@ -22,7 +22,7 @@ int repair(const int *arr) int main(int argc, char *argv[]) { - FILE *file = fopen(argv[1], "r"); + FILE *file = fopen(argv[argc - 1], "r"); if (!file) { return 1; } diff --git a/1/part2_fast.c b/1/part2_fast.c index b38894b..4523c65 100644 --- a/1/part2_fast.c +++ b/1/part2_fast.c @@ -123,7 +123,7 @@ int repair_avx(const int *arr) int main(int argc, char *argv[]) { - FILE *file = fopen(argv[1], "r"); + FILE *file = fopen(argv[argc - 1], "r"); if (!file) { return 1; } diff --git a/2/part1.c b/2/part1.c index 9a74a2c..11d955b 100644 --- a/2/part1.c +++ b/2/part1.c @@ -22,7 +22,7 @@ bool is_valid_password(char *pass, char *policy) int main(int argc, char *argv[]) { - FILE *file = fopen(argv[1], "r"); + FILE *file = fopen(argv[argc - 1], "r"); if (!file) { return 1; } diff --git a/2/part2.c b/2/part2.c index c6219a1..7a2e16e 100644 --- a/2/part2.c +++ b/2/part2.c @@ -15,7 +15,7 @@ bool is_valid_password(char *pass, char *policy) int main(int argc, char *argv[]) { - FILE *file = fopen(argv[1], "r"); + FILE *file = fopen(argv[argc - 1], "r"); if (!file) { return 1; } diff --git a/3/part1.c b/3/part1.c index 0373328..b664b7d 100644 --- a/3/part1.c +++ b/3/part1.c @@ -33,5 +33,5 @@ int count_trees(const char *filename) int main(int argc, char *argv[]) { - printf("%i", count_trees(argv[1])); + printf("%i", count_trees(argv[argc - 1])); } diff --git a/3/part2.c b/3/part2.c index 7362c12..29319b4 100644 --- a/3/part2.c +++ b/3/part2.c @@ -35,6 +35,7 @@ int count_trees(int inc_right, int inc_down, const char *filename) int main(int argc, char *argv[]) { - long mul = (long)count_trees(1, 1, argv[1]) * count_trees(3, 1, argv[1]) * count_trees(5, 1, argv[1]) * count_trees(7, 1, argv[1]) * count_trees(1, 2, argv[1]); + int arg = argv[argc - 1]; + long mul = (long)count_trees(1, 1, arg) * count_trees(3, 1, arg) * count_trees(5, 1, arg) * count_trees(7, 1, arg) * count_trees(1, 2, arg); printf("%li\n", mul); } diff --git a/4/part1.c b/4/part1.c index 65c3b99..b4a3b8e 100644 --- a/4/part1.c +++ b/4/part1.c @@ -64,5 +64,5 @@ int count_valid_passports(const char *filename) int main(int argc, char *argv[]) { - printf("%i", count_valid_passports(argv[1])); + printf("%i", count_valid_passports(argv[argc - 1])); } diff --git a/4/part2.c b/4/part2.c index f132753..5aac219 100644 --- a/4/part2.c +++ b/4/part2.c @@ -131,5 +131,5 @@ int count_valid_passports(const char *filename) int main(int argc, char *argv[]) { - printf("%i", count_valid_passports(argv[1])); + printf("%i", count_valid_passports(argv[argc - 1])); } diff --git a/5/part1.c b/5/part1.c index 5b45083..10cc36c 100644 --- a/5/part1.c +++ b/5/part1.c @@ -76,5 +76,5 @@ int highest_seat_id(const char *filename) int main(int argc, char *argv[]) { - printf("%i\n", highest_seat_id(argv[1])); + printf("%i\n", highest_seat_id(argv[argc - 1])); } diff --git a/5/part2.c b/5/part2.c index ac74224..21dbdc2 100644 --- a/5/part2.c +++ b/5/part2.c @@ -86,9 +86,11 @@ int missing_seat_id(const char *filename) return i; } } + + return 0; } int main(int argc, char *argv[]) { - printf("%i", missing_seat_id(argv[1])); + printf("%i", missing_seat_id(argv[argc - 1])); } diff --git a/5/part2_fast.c b/5/part2_fast.c index 330244e..df2a585 100644 --- a/5/part2_fast.c +++ b/5/part2_fast.c @@ -77,9 +77,11 @@ int missing_seat_id(const char *filename) return i; } } + + return 0; } int main(int argc, char *argv[]) { - printf("%i", missing_seat_id(argv[1])); + printf("%i", missing_seat_id(argv[argc - 1])); } diff --git a/prepare b/prepare index b49cbbc..5595107 100755 --- a/prepare +++ b/prepare @@ -1,4 +1,9 @@ #!/usr/bin/env bash cd $(("$1")) -clang -Wall -pedantic -O3 -march=native -mtune=native -flto -s -static -o "part$2" "part$2.c" +file="part$2.c" +if test -f "part$2_fast.c" +then + file="part$2_fast.c" +fi +clang -Wall -pedantic -O3 -march=native -mtune=native -flto -s -static -o ../run "part$2.c" diff --git a/run b/run index ceed5a4..9348830 100755 Binary files a/run and b/run differ -- cgit v1.2.3