The currents flags for the C compiler that are used:
-pthread -g -pg -O2 -MD -D_FORTIFY_SOURCE=2 -Wpointer-arith -Wmissing-declarations -Wmissing-prototypes -Wshadow -Wwrite-strings -Wcast-align -Waggregate-return -Wbad-function-cast -Wcast-qual -Wundef -Wredundant-decls -Wdisabled-optimization -Wfloat-equal -Wmissing-format-attribute -Wmultichar -Wc++-compat -Wmissing-noreturn -funit-at-a-time -Wall -Wstrict-prototypes -Weffc++As you can see there are a lot of flags to compile this program with the C compiler. What caught my eye was that they're using the O2 flag and not O3, so I saw this as a optimization possibility and went straight in to change it. Once I changed all the flags I did another benchmark of the program to see if it had helped at all. ~
To check if it did anything, I looked at the executable file. It made the file larger with the -O3 optimization. It went from 2.7 mb to 3.5 mb.
Note: Don't forget to take out the -pg flag as well to have a correct benchmark. -pg makes your program slower so then you won't have the correct comparison.
The following benchmarks are for x86_64
With -O2 flag
10.5 mb file | 105 mb file | 1.5 gb file |
---|---|---|
real: 0m0.053s | real: 0m0.287s | real: 0m3.458s |
user: 0m0.021s | user: 0m0.200s | user: 0m2.793s |
sys: 0m0.003s | sys: 0m0.012s | sys: 0m0.184s |
With -O3 flag
10.5 mb file | 105 mb file | 1.5 gb file |
---|---|---|
real: 0m0.045s | real: 0m0.258s | real: 0m3.071s |
user: 0m0.020s | user: 0m0.197s | user: 0m2.756s |
sys: 0m0.002s | sys: 0m0.014s | sys: 0m0.177s |
By comparing the real time you can see the -O3 flag makes the program 11.2% faster. Which is a pretty nice optimization. So I recommend they replace the -O2 flag with -O3.
Now it's time to benchmark the software on Betty and hope so see an optimization as well.
No comments:
Post a Comment