Hello amd64 users. I've recently installed gcc-4.0 compiler from debian packages. I've read before that the gcc-4 has improved optimisation for x86-64 arch as in comparison with gcc-3 branch. However, i've tried to compare the performance of gcc-3.4 and gcc-4.0 branches by compiling john (1.6.37) with the following flags: CFLAGS = -c -Wall -O3 -fomit-frame-pointer -march=athlon64 after running the binaries i've found out that gcc-4.0 has very poor performance as compared with gcc-3.4. Here is the output from the john: ---begin gcc-4.0 --- nice -n -19 ./john-4 -test Benchmarking: Traditional DES [64/64 BS]... DONE Many salts: 465446 c/s real, 471099 c/s virtual Only one salt: 422912 c/s real, 437797 c/s virtual Benchmarking: BSDI DES (x725) [64/64 BS]... DONE Many salts: 16204 c/s real, 16705 c/s virtual Only one salt: 15929 c/s real, 16557 c/s virtual Benchmarking: FreeBSD MD5 [32/64 X2]... DONE Raw: 5344 c/s real, 5544 c/s virtual Benchmarking: OpenBSD Blowfish (x32) [32/64]... DONE Raw: 374 c/s real, 388 c/s virtual Benchmarking: Kerberos AFS DES [48/64 4K]... DONE Short: 312371 c/s real, 322697 c/s virtual Long: 955136 c/s real, 986710 c/s virtual Benchmarking: NT LM DES [64/64 BS]... DONE Raw: 5726530 c/s real, 5964640 c/s virtual ---end gcc-4.0 --- ---begin gcc-3.4--- nice -n -19 ./john-3.4 -test Benchmarking: Traditional DES [64/64 BS]... DONE Many salts: 937894 c/s real, 951211 c/s virtual Only one salt: 800806 c/s real, 823874 c/s virtual Benchmarking: BSDI DES (x725) [64/64 BS]... DONE Many salts: 29580 c/s real, 30685 c/s virtual Only one salt: 29118 c/s real, 30201 c/s virtual Benchmarking: FreeBSD MD5 [32/64 X2]... DONE Raw: 5640 c/s real, 5827 c/s virtual Benchmarking: OpenBSD Blowfish (x32) [32/64]... DONE Raw: 404 c/s real, 419 c/s virtual Benchmarking: Kerberos AFS DES [48/64 4K]... DONE Short: 348108 c/s real, 360361 c/s virtual Long: 1056614 c/s real, 1093803 c/s virtual Benchmarking: NT LM DES [64/64 BS]... DONE Raw: 5816383 c/s real, 6081311 c/s virtual ---end gcc-3.4--- As you can see, the performance of gcc-4.0 is quite poor as compared with gcc-3.4, especially when john benchmarks Traditional DES bruteforcing, or I am missing something out? Is there a reason for such performance differences? Many thanks for any suggestions. Andrei
Attachment:
signature.asc
Description: This is a digitally signed message part