Bug#709756: libc6 2.17 performance slowdown
Package: libc6
Version: 2.17-3
Severity: important
Version 2.17-3 of libc6 in testing is significantly slower than
version 2.13-38 in stable. Installing only the updated libc6 and
dependent packages causes a slowdown of up to 50% in parts of a
benchmark test.
The tests below were run on a VirtualBox client Debian Gnu/Linux i386
installation of testing before and after upgrading libc6. The exact
list of changed packages is the following:
-ii libc-dev-bin 2.13-38 i386 Embedded GNU C Library: Development binaries
-ii libc6:i386 2.13-38 i386 Embedded GNU C Library: Shared libraries
-ii libc6-dev:i386 2.13-38 i386 Embedded GNU C Library: Development Libraries and Header Files
-ii libc6-i686:i386 2.13-38 i386 Embedded GNU C Library: Shared libraries [i686 optimized]
-ii locales 2.13-38 all Embedded GNU C Library: National Language (locale) data [support]
+ii libc-dev-bin 2.17-3 i386 Embedded GNU C Library: Development binaries
+ii libc6:i386 2.17-3 i386 Embedded GNU C Library: Shared libraries
+ii libc6-dev:i386 2.17-3 i386 Embedded GNU C Library: Development Libraries and Header Files
+ii libc6-i686:i386 2.17-3 i386 Embedded GNU C Library: Shared libraries [i686 optimized]
+ii locales 2.17-3 all Embedded GNU C Library: National Language (locale) data [support]
The test program was nbench2:
http://www.tux.org/~mayer/linux/nbench-byte-2.2.3.tar.gz
The only modification to the program was make the compiled executable
dynamically linked instead of statically linked:
--- Makefile~ 2004-12-30 02:23:30.000000000 +0000
+++ Makefile 2013-05-25 08:33:44.841319746 +0100
@@ -25 +25 @@
-CFLAGS = -s -static -Wall -O3
+CFLAGS = -s -Wall -O3
The results with libc6 2.13-38 are:
TEST : Iterations/sec. :
--------------------:------------------:
NUMERIC SORT : 1063.5 :
STRING SORT : 578.16 :
BITFIELD : 5.1673e+08 :
FP EMULATION : 183.46 :
FOURIER : 28943 :
ASSIGNMENT : 40.862 :
IDEA : 7928 :
HUFFMAN : 3732.5 :
NEURAL NET : 49.96 :
LU DECOMPOSITION : 1723 :
==========================ORIGINAL BYTEMARK RESULTS==========================
INTEGER INDEX : 101.010
FLOATING-POINT INDEX: 61.778
==============================LINUX DATA BELOW===============================
CPU : GenuineIntel Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz 0MHz
L2 Cache : 6144 KB
OS : Linux 3.9.0-1
C compiler : gcc version 4.7.2 (Debian 4.7.2-5)
libc :
MEMORY INDEX : 31.023
INTEGER INDEX : 21.571
FLOATING-POINT INDEX: 34.264
The results with libc6 2.17-3 (not re-compiled) are:
TEST : Iterations/sec. :
--------------------:------------------:-
NUMERIC SORT : 1092.6 :
STRING SORT : 602.64 :
BITFIELD : 5.1374e+08 :
FP EMULATION : 166.96 :
FOURIER : 12296 :
ASSIGNMENT : 38.235 :
IDEA : 7868 :
HUFFMAN : 3462.4 :
NEURAL NET : 51.758 :
LU DECOMPOSITION : 2237 :
==========================ORIGINAL BYTEMARK RESULTS==========================
INTEGER INDEX : 98.435
FLOATING-POINT INDEX: 51.265
==============================LINUX DATA BELOW===============================
CPU : GenuineIntel Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz 2396MHz
L2 Cache : 6144 KB
OS : Linux 3.9.0-1
C compiler : gcc version 4.7.2 (Debian 4.7.2-5)
libc :
MEMORY INDEX : 30.706
INTEGER INDEX : 20.777
FLOATING-POINT INDEX: 28.434
The overall benchmark is 5%-10% slower but the FOURIER sub-test only
achieves half the rate.
Recompiling on the system with the new libc6 produces similar results,
in particular the FOURIER sub-test is still half the rate.
When testing one of my own programs I see a slowdown of between 30%
and 100%.
--
Andrew.
Reply to: