public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used
@ 2012-05-07 11:48 dominik.strasser@onespin-solutions.com
  2012-05-07 12:06 ` [Bug libstdc++/53263] " paolo.carlini at oracle dot com
                   ` (21 more replies)
  0 siblings, 22 replies; 23+ messages in thread
From: dominik.strasser@onespin-solutions.com @ 2012-05-07 11:48 UTC (permalink / raw)
  To: gcc-bugs

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

             Bug #: 53263
           Summary: priority_queue is very slow if -D_GLIBCXX_DEBUG is
                    used
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: dominik.strasser@onespin-solutions.com


Created attachment 27332
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27332
Minimalistic example demonstrating the problem

I've measured the most simplistic usage of priority queue.
With 5,000 elements, the run time is:
real    0m0.005s
user    0m0.002s
sys     0m0.002s
With 10,000 elements, the run time is:
real    0m0.006s
user    0m0.002s
sys     0m0.002s

If I switch on -D_GLIBCXX_DEBUG, the situation changes:
5,000 elements:
real    0m11.216s
user    0m11.210s
sys     0m0.003s

10,000 elements:
real    0m48.354s
user    0m48.344s
sys     0m0.003s

20,000 elements:
real    2m56.971s
user    2m56.941s
sys     0m0.002s

So in addition to some overhead, there seems to be some quadratic behavior
inside the debug version as the run time is 4x for 2x elements.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
@ 2012-05-07 12:06 ` paolo.carlini at oracle dot com
  2012-05-07 12:07 ` paolo.carlini at oracle dot com
                   ` (20 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-05-07 12:06 UTC (permalink / raw)
  To: gcc-bugs

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

Paolo Carlini <paolo.carlini at oracle dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fdumont at gcc dot gnu.org
           Severity|normal                      |enhancement

--- Comment #1 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-05-07 12:05:40 UTC ---
I don't think we are making any promises in terms of debug-mode performance. Is
it better for other debug-mode implementations doing checks of similar
strength? 

Maybe Francois has ideas, adding him in CC. If I remember correctly, in some
cases we have been able to make progress rather easily by simply going to
unchecked iterators before forwarding to internal implementation details.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
  2012-05-07 12:06 ` [Bug libstdc++/53263] " paolo.carlini at oracle dot com
@ 2012-05-07 12:07 ` paolo.carlini at oracle dot com
  2012-05-07 12:43 ` dominik.strasser@onespin-solutions.com
                   ` (19 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-05-07 12:07 UTC (permalink / raw)
  To: gcc-bugs

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

Paolo Carlini <paolo.carlini at oracle dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-05-07
     Ever Confirmed|0                           |1

--- Comment #2 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-05-07 12:06:19 UTC ---
CC-ing Francois.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
  2012-05-07 12:06 ` [Bug libstdc++/53263] " paolo.carlini at oracle dot com
  2012-05-07 12:07 ` paolo.carlini at oracle dot com
@ 2012-05-07 12:43 ` dominik.strasser@onespin-solutions.com
  2012-05-07 12:55 ` paolo.carlini at oracle dot com
                   ` (18 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: dominik.strasser@onespin-solutions.com @ 2012-05-07 12:43 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from dominik.strasser@onespin-solutions.com 2012-05-07 12:38:26 UTC ---
(In reply to comment #1)
> I don't think we are making any promises in terms of debug-mode performance. Is
> it better for other debug-mode implementations doing checks of similar
> strength? 
I see that the other containers have a performance which is comparable to the
non-debug counterpart.
priority_queue just kills some of my tests as it doesn't return after hours.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (2 preceding siblings ...)
  2012-05-07 12:43 ` dominik.strasser@onespin-solutions.com
@ 2012-05-07 12:55 ` paolo.carlini at oracle dot com
  2012-05-07 13:37 ` pluto at agmk dot net
                   ` (17 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-05-07 12:55 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-05-07 12:54:36 UTC ---
I see, I see.

First, I notice that we don't have a specific debug/ version of it, thus you
are using the normal version + debug-mode std::vector and std::????_heap
algorithms as implementation details. Likely the latter are the problem, I
think we already noticed somewhere that std::push_heap & company check a lot,
check at every step that a proper heap is passed, but I don't remember the
outcome of that discussion.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (3 preceding siblings ...)
  2012-05-07 12:55 ` paolo.carlini at oracle dot com
@ 2012-05-07 13:37 ` pluto at agmk dot net
  2012-05-07 20:51 ` fdumont at gcc dot gnu.org
                   ` (16 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: pluto at agmk dot net @ 2012-05-07 13:37 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from Pawel Sikora <pluto at agmk dot net> 2012-05-07 13:34:43 UTC ---
callgrind shows that n*10e3 of pq.push() generates m*10e6 (m>n)
_M_can_advance() calls and growing fast :)


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (4 preceding siblings ...)
  2012-05-07 13:37 ` pluto at agmk dot net
@ 2012-05-07 20:51 ` fdumont at gcc dot gnu.org
  2012-05-07 21:14 ` paolo.carlini at oracle dot com
                   ` (15 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: fdumont at gcc dot gnu.org @ 2012-05-07 20:51 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from François Dumont <fdumont at gcc dot gnu.org> 2012-05-07 20:37:57 UTC ---
  I see 2 possible modifications for this problem.

  The first one would be to avoid the numerous calls to _M_can_advance. In
priority_queue each time an element is pushed there is a call to push_heap
which, in debug mode, call __is_heap on the debug vector so on debug iterator
thus the numerous calls to _M_can_advance. To avoid this issue you can try to
change definition of debug macro in include/debug/macros.h from:

#define __glibcxx_check_heap(_First,_Last)                \
_GLIBCXX_DEBUG_VERIFY(std::__is_heap(_First, _Last),                \
              _M_message(__gnu_debug::__msg_not_heap)            \
              ._M_iterator(_First, #_First)            \
              ._M_iterator(_Last, #_Last))

to

#define __glibcxx_check_heap(_First,_Last)                \
_GLIBCXX_DEBUG_VERIFY(std::__is_heap(__gnu_debug::__base(_First),
__gnu_debug::__base(_Last)),                \
              _M_message(__gnu_debug::__msg_not_heap)            \
              ._M_iterator(_First, #_First)            \
              ._M_iterator(_Last, #_Last))

  This is going to remove the debug layer around the vector iterators which is
useless when call __is_heap because we already know that the iterator range is
correct, it has been checked before.

  The second one would be more radical: remove all debug checks from
priority_queue implementation because the priority_queue completely control the
underlying sequence content and from one push to the other there is no chance
that the underlying sequence do not represent a heap anymore. But this means
that debug algos are correctly segregated from normal algos which is something
I have started to work on but not yet completed.

  In fact the heap could be broken if a contained instance is changed in a bad
way but I don't think debug checks in push_heap are there for this kind of bad
coding practice which is very hard to detect when you want to keep good
performance.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (5 preceding siblings ...)
  2012-05-07 20:51 ` fdumont at gcc dot gnu.org
@ 2012-05-07 21:14 ` paolo.carlini at oracle dot com
  2012-05-08  8:07 ` pluto at agmk dot net
                   ` (14 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-05-07 21:14 UTC (permalink / raw)
  To: gcc-bugs

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

Paolo Carlini <paolo.carlini at oracle dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |paolo.carlini at oracle dot
                   |                            |com

--- Comment #7 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-05-07 21:10:08 UTC ---
Good, good, thanks Francois, anybody willing to benchmark the more limited
change?


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (6 preceding siblings ...)
  2012-05-07 21:14 ` paolo.carlini at oracle dot com
@ 2012-05-08  8:07 ` pluto at agmk dot net
  2012-05-08  9:56 ` paolo.carlini at oracle dot com
                   ` (13 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: pluto at agmk dot net @ 2012-05-08  8:07 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #8 from Pawel Sikora <pluto at agmk dot net> 2012-05-08 07:54:18 UTC ---
(In reply to comment #7)
> Good, good, thanks Francois, anybody willing to benchmark the more limited
> change?

changing __glibcxx_check_heap_*pred* reduces timings for me from
~3.25 sec to 0.18sec (for 10000 items in pqueue).

tested on on intel core-i3-540 with:
x86_64-gnu-linux-g++ pq.C -o pq -g2 -static -D_GLIBCXX_DEBUG -O2


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (7 preceding siblings ...)
  2012-05-08  8:07 ` pluto at agmk dot net
@ 2012-05-08  9:56 ` paolo.carlini at oracle dot com
  2012-05-08 20:02 ` fdumont at gcc dot gnu.org
                   ` (12 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-05-08  9:56 UTC (permalink / raw)
  To: gcc-bugs

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

Paolo Carlini <paolo.carlini at oracle dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|paolo.carlini at oracle dot |
                   |com                         |

--- Comment #9 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-05-08 09:40:23 UTC ---
Thanks Pawel. Thus, Francois, I would suggest testing and, if everything goes
well, checking-in the small change to mainline and 4.7.x, thus consider the
issue resolved in terms of localized performance improvement. Further
enhancements will be automatically part of the long term changes Francois is
working on.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (8 preceding siblings ...)
  2012-05-08  9:56 ` paolo.carlini at oracle dot com
@ 2012-05-08 20:02 ` fdumont at gcc dot gnu.org
  2012-05-11 20:20 ` fdumont at gcc dot gnu.org
                   ` (11 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: fdumont at gcc dot gnu.org @ 2012-05-08 20:02 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #10 from François Dumont <fdumont at gcc dot gnu.org> 2012-05-08 19:31:49 UTC ---
Ok, I will submit a patch tomorrow generalizing usage of __gnu_debug::__base in
debug macros.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (9 preceding siblings ...)
  2012-05-08 20:02 ` fdumont at gcc dot gnu.org
@ 2012-05-11 20:20 ` fdumont at gcc dot gnu.org
  2012-05-12 21:57 ` paolo.carlini at oracle dot com
                   ` (10 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: fdumont at gcc dot gnu.org @ 2012-05-11 20:20 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #11 from François Dumont <fdumont at gcc dot gnu.org> 2012-05-11 19:21:38 UTC ---
Author: fdumont
Date: Fri May 11 19:21:31 2012
New Revision: 187414

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=187414
Log:
2012-05-11  François Dumont  <fdumont@gcc.gnu.org>

    PR libstdc++/53263
    * include/debug/safe_iterator.h (__gnu_debug::__base): Move...
    * include/debug/functions.h: ... Here. Add debug function
    overloads to perform checks on normal iterators when possible.
    * include/debug/macros.h (__glibcxx_check_heap)
    (__glibcxx_check_heap_pred): Use __gnu_debug::__base on iterator range.

Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/debug/functions.h
    trunk/libstdc++-v3/include/debug/macros.h
    trunk/libstdc++-v3/include/debug/safe_iterator.h


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (10 preceding siblings ...)
  2012-05-11 20:20 ` fdumont at gcc dot gnu.org
@ 2012-05-12 21:57 ` paolo.carlini at oracle dot com
  2012-05-14 20:20 ` fdumont at gcc dot gnu.org
                   ` (9 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-05-12 21:57 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #12 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-05-12 21:41:15 UTC ---
Francois, please double check that now you are ok, thanks.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (11 preceding siblings ...)
  2012-05-12 21:57 ` paolo.carlini at oracle dot com
@ 2012-05-14 20:20 ` fdumont at gcc dot gnu.org
  2012-06-11 15:06 ` dominik.strasser@onespin-solutions.com
                   ` (8 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: fdumont at gcc dot gnu.org @ 2012-05-14 20:20 UTC (permalink / raw)
  To: gcc-bugs

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

François Dumont <fdumont at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #13 from François Dumont <fdumont at gcc dot gnu.org> 2012-05-14 19:49:52 UTC ---
Avoiding the numerous debug checks when checking that ranges are heap seems to
have resolve this issue. Fully removing useless debug checks in priority_queue
will come later.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (12 preceding siblings ...)
  2012-05-14 20:20 ` fdumont at gcc dot gnu.org
@ 2012-06-11 15:06 ` dominik.strasser@onespin-solutions.com
  2012-06-11 15:27 ` paolo.carlini at oracle dot com
                   ` (7 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: dominik.strasser@onespin-solutions.com @ 2012-06-11 15:06 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #14 from dominik.strasser@onespin-solutions.com 2012-06-11 15:05:43 UTC ---
Is there a chance to get this into 4.7.1 ?


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (13 preceding siblings ...)
  2012-06-11 15:06 ` dominik.strasser@onespin-solutions.com
@ 2012-06-11 15:27 ` paolo.carlini at oracle dot com
  2013-06-24 11:34 ` dominik.strasser@onespin-solutions.com
                   ` (6 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-06-11 15:27 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #15 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-06-11 15:27:17 UTC ---
Too late for 4.7.1. Francois, can you please apply the patch to 4_7-branch as
soon as 4.7.1 is out, thus for 4.7.2? Thanks!


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (14 preceding siblings ...)
  2012-06-11 15:27 ` paolo.carlini at oracle dot com
@ 2013-06-24 11:34 ` dominik.strasser@onespin-solutions.com
  2013-06-24 11:47 ` dominik.strasser@onespin-solutions.com
                   ` (5 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: dominik.strasser@onespin-solutions.com @ 2013-06-24 11:34 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #17 from dominik.strasser@onespin-solutions.com ---
Created attachment 30350
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30350&action=edit
New testcase


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (15 preceding siblings ...)
  2013-06-24 11:34 ` dominik.strasser@onespin-solutions.com
@ 2013-06-24 11:47 ` dominik.strasser@onespin-solutions.com
  2013-06-24 11:51 ` paolo.carlini at oracle dot com
                   ` (4 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: dominik.strasser@onespin-solutions.com @ 2013-06-24 11:47 UTC (permalink / raw)
  To: gcc-bugs

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

dominik.strasser@onespin-solutions.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #27332|0                           |1
        is obsolete|                            |
  Attachment #30350|0                           |1
        is obsolete|                            |

--- Comment #18 from dominik.strasser@onespin-solutions.com ---
Created attachment 30351
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30351&action=edit
Really new testcase


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (16 preceding siblings ...)
  2013-06-24 11:47 ` dominik.strasser@onespin-solutions.com
@ 2013-06-24 11:51 ` paolo.carlini at oracle dot com
  2013-06-24 11:58 ` paolo.carlini at oracle dot com
                   ` (3 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-06-24 11:51 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #19 from Paolo Carlini <paolo.carlini at oracle dot com> ---
I'm not going to work on this anyway, but really I'm not at all sure that
debug-mode is by design made for "bigger configurations", thus makes sense to
give high priority to this kind of issue. Unless of course users actively
contribute improvements.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (17 preceding siblings ...)
  2013-06-24 11:51 ` paolo.carlini at oracle dot com
@ 2013-06-24 11:58 ` paolo.carlini at oracle dot com
  2013-06-24 12:13 ` dominik.strasser@onespin-solutions.com
                   ` (2 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-06-24 11:58 UTC (permalink / raw)
  To: gcc-bugs

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

Paolo Carlini <paolo.carlini at oracle dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #20 from Paolo Carlini <paolo.carlini at oracle dot com> ---
And we already analyzed the issue and figured out that further improvements
aren't part of it (See Comment 6 and 9).


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (18 preceding siblings ...)
  2013-06-24 11:58 ` paolo.carlini at oracle dot com
@ 2013-06-24 12:13 ` dominik.strasser@onespin-solutions.com
  2013-06-24 12:17 ` paolo.carlini at oracle dot com
  2013-10-16 11:13 ` redi at gcc dot gnu.org
  21 siblings, 0 replies; 23+ messages in thread
From: dominik.strasser@onespin-solutions.com @ 2013-06-24 12:13 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #21 from dominik.strasser@onespin-solutions.com ---
How can I help ?
My goal is to run our entire regression test suite with STL debugging switched
on as this is great for quality assurance. Having fought several problems, this
now seems to be my final obstacle. After one year I now have a fix in a GCC
release but unfortunately still no cigar.

If you point me to sth. where I can look at I will happily try to contribute.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (19 preceding siblings ...)
  2013-06-24 12:13 ` dominik.strasser@onespin-solutions.com
@ 2013-06-24 12:17 ` paolo.carlini at oracle dot com
  2013-10-16 11:13 ` redi at gcc dot gnu.org
  21 siblings, 0 replies; 23+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-06-24 12:17 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #22 from Paolo Carlini <paolo.carlini at oracle dot com> ---
Get in touch with Francois and work on further improvements with him.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [Bug libstdc++/53263] priority_queue is very slow if -D_GLIBCXX_DEBUG is used
  2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
                   ` (20 preceding siblings ...)
  2013-06-24 12:17 ` paolo.carlini at oracle dot com
@ 2013-10-16 11:13 ` redi at gcc dot gnu.org
  21 siblings, 0 replies; 23+ messages in thread
From: redi at gcc dot gnu.org @ 2013-10-16 11:13 UTC (permalink / raw)
  To: gcc-bugs

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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|4.8.1                       |4.7.0
   Target Milestone|---                         |4.8.0

--- Comment #23 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Domink, why did you change the version of this bug on 2013-06-24 (and reopen
it)?

It was reported against 4.7.0, before 4.8.0 was even released, so cannot be a
bug in 4.8.1, right?

I'm restoring the version to 4.7.0 and setting target to 4.8.0 since that's
where the fix appeared.


^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2013-10-16 11:13 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-05-07 11:48 [Bug libstdc++/53263] New: priority_queue is very slow if -D_GLIBCXX_DEBUG is used dominik.strasser@onespin-solutions.com
2012-05-07 12:06 ` [Bug libstdc++/53263] " paolo.carlini at oracle dot com
2012-05-07 12:07 ` paolo.carlini at oracle dot com
2012-05-07 12:43 ` dominik.strasser@onespin-solutions.com
2012-05-07 12:55 ` paolo.carlini at oracle dot com
2012-05-07 13:37 ` pluto at agmk dot net
2012-05-07 20:51 ` fdumont at gcc dot gnu.org
2012-05-07 21:14 ` paolo.carlini at oracle dot com
2012-05-08  8:07 ` pluto at agmk dot net
2012-05-08  9:56 ` paolo.carlini at oracle dot com
2012-05-08 20:02 ` fdumont at gcc dot gnu.org
2012-05-11 20:20 ` fdumont at gcc dot gnu.org
2012-05-12 21:57 ` paolo.carlini at oracle dot com
2012-05-14 20:20 ` fdumont at gcc dot gnu.org
2012-06-11 15:06 ` dominik.strasser@onespin-solutions.com
2012-06-11 15:27 ` paolo.carlini at oracle dot com
2013-06-24 11:34 ` dominik.strasser@onespin-solutions.com
2013-06-24 11:47 ` dominik.strasser@onespin-solutions.com
2013-06-24 11:51 ` paolo.carlini at oracle dot com
2013-06-24 11:58 ` paolo.carlini at oracle dot com
2013-06-24 12:13 ` dominik.strasser@onespin-solutions.com
2013-06-24 12:17 ` paolo.carlini at oracle dot com
2013-10-16 11:13 ` redi at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).