[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: