Am 06.08.2015 um 11:00 schrieb Karel Gardas:
Denis, if NetBSD is fast in qemu and if it provides sparc64 user-land,
perhaps also its GCC is sparc64 binary and if so, then it would be
good if you do your original benchmark of compiling pugixml.cpp and
write the numbers here for comparison? I would certainly appreciate it
since I'll not get to this testing in foreseeable future again.
i've re-redone the benchmarks with Debian and NetBSD SPARC64
benchmarks:
compilation pugixml 1.6 pugixml.cpp:
g++ src/pugixml.cpp -g -Wall -Wextra -Werror -pedantic -std=c++0x -c
-MMD -MP
host: ~3 sec
guest-debian: ~3:52.6 (32bit gcc, virtio)
guest-debian: ~3:01.7 (32bit gcc, virtio, using the qcow2 image from an
ramfs ramdisk)
guest-netbsd: ~3:27.6 (64bit gcc, non-virtio)
guest-netbsd: ~2:51.6 (64bit gcc, non-virtio, using the qcow2 image from
an ramfs ramdisk)
runtime Aurelien Jarnos prime.c
gcc prime.c -o prime.out -lm
host: ~2 sec
guest-debian(-m32): ~3:37.5
guest-debian(-m64): ~11 sec
guest-netbsd(only -m64): ~11 sec
Aurelien Jarnos explained the "11 sec" boost running prime.c using -m64,
but still the NetBSD 64bit gcc needs 3:27.6 to compile pugixml.cpp - its
just one file, 1GB of RAM, no swapping
using a ramdisk gives even under debian(with virtio) a 50sek speedup,
netbsd (without virtio) just gains 30sek
-----------------
host: Ubuntu 15.04 x64 (latest updates) i7, 8 Cores, 8 GB RAM
uname -a
Linux dl-Precision-M6500 3.19.0-25-generic #26-Ubuntu SMP Fri Jul 24
21:17:31 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
file /usr/bin/gcc
/usr/bin/gcc: symbolic link to `gcc-4.9'
file /usr/bin/gcc-4.9
/usr/bin/gcc-4.9: ELF 64-bit LSB executable, x86-64, version 1
(SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32,
BuildID[sha1]=f9897a3711d41df1d427f81bf3a60a60c377cd12, stripped
----------------
qemu: qemu 2.4.50 build from source (the former posted 2.3.93 was the
wrong version)
file ~/qemu/sparc64-softmmu/qemu-system-sparc64
/home/dl/qemu/sparc64-softmmu/qemu-system-sparc64: ELF 64-bit LSB
shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared
libs), for GNU/Linux 2.6.32,
BuildID[sha1]=8cae7ad397bb9beb12d1ad670c3170a8dceef139, not stripped
----------------
guest-debian: Debian 7.8.0 SPARC64 (mixed 32/64 bit kernel/userland)
uname -a
Linux debian 3.2.0-4-sparc64 #1 Debian 3.2.68-1+deb7u2 sparc64 GNU/Linux
32bit GCC
file /usr/bin/gcc
/usr/bin/gcc: symbolic link to `gcc-4.6'
file /usr/bin/gcc-4.6
/usr/bin/gcc-4.6: ELF 32-bit MSB executable, SPARC32PLUS, V8+ Required,
version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux
2.6.26, BuildID[sha1]=0x64ad1bef0a0bfdb8780363e811c39b7c97d567ac, stripped
----------------
guest-netsbd: NetBSD 6.1.5 SPARC64
(according to the documentation + mailing list questions its pure 64bit
kernel and userland)
uname -a
NetBSD myhost.mydom 6.1.5 NetBSD 6.1.5 (GENERIC) sparc64
64bit GCC
file /usr/bin/gcc
/usr/bin/gcc: ELF 64-bit MSB executable, SPARC V9, relaxed memory
ordering, (SYSV), dynamically linked (uses shared libs), for NetBSD
6.1.5, not stripped
----------------