[Bug c++/56671] New: Gcc uses large amounts of memory and processor power with large C++11 bitsets

m101010a at gmail dot com gcc-bugzilla@gcc.gnu.org
Thu Mar 21 01:34:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56671

             Bug #: 56671
           Summary: Gcc uses large amounts of memory and processor power
                    with large C++11 bitsets
    Classification: Unclassified
           Product: gcc
           Version: 4.7.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: m101010a@gmail.com


When I attempt to instantiate std::bitset<1024*1024*1024> in C++98 mode,
compilation takes a quarter-second and uses almost no RAM.  In C++11 mode, it
takes 8 seconds and almost 2GB of RAM.  The time and memory usage appear to
scale linearly with the size of the bitset.  No errors or warnings are reported
in either mode.

Full code:
#include <bitset>
int main()
{
    std::bitset<1024*1024*1024> bs;
}

Compilation lines:
g++ -std=c++98 x.cpp
g++ -std=c++11 x.cpp

g++ -v:
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.2/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /build/src/gcc-4.7.2/configure --prefix=/usr --libdir=/usr/lib
--libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info
--with-bugurl=https://bugs.archlinux.org/
--enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared
--enable-threads=posix --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch
--enable-libstdcxx-time --enable-gnu-unique-object --enable-linker-build-id
--with-ppl --enable-cloog-backend=isl --disable-ppl-version-check
--disable-cloog-version-check --enable-lto --enable-gold --enable-ld=default
--enable-plugin --with-plugin-ld=ld.gold --with-linker-hash-style=gnu
--enable-multilib --disable-libssp --disable-build-with-cxx
--disable-build-poststage1-with-cxx --enable-checking=release
Thread model: posix
gcc version 4.7.2 (GCC)



More information about the Gcc-bugs mailing list