This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/70452] [5/6 Regression] Regression in C++ parsing performance between 4.9.3 and 5.3.1


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452

--- Comment #14 from Patrick Palka <ppalka at gcc dot gnu.org> ---
trunk is now at

Execution times (seconds)
 phase setup             :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 1%) wall 
  1287 kB ( 1%) ggc
 phase parsing           :   1.28 (100%) usr   0.20 (100%) sys   1.48 (99%)
wall  156462 kB (99%) ggc
 |name lookup            :   0.03 ( 2%) usr   0.01 ( 5%) sys   0.04 ( 3%) wall 
    81 kB ( 0%) ggc
 |overload resolution    :   0.04 ( 3%) usr   0.00 ( 0%) sys   0.05 ( 3%) wall 
   628 kB ( 0%) ggc
 preprocessing           :   0.03 ( 2%) usr   0.04 (20%) sys   0.09 ( 6%) wall 
  2048 kB ( 1%) ggc
 parser (global)         :   0.02 ( 2%) usr   0.07 (35%) sys   0.06 ( 4%) wall 
  7735 kB ( 5%) ggc
 parser function body    :   1.23 (96%) usr   0.09 (45%) sys   1.33 (89%) wall 
146667 kB (93%) ggc
 TOTAL                 :   1.28             0.20             1.49            
157759 kB


The remaining extra memory and runtime overhead relative to 4.9 is mostly due
to the constexpr_call_table which caches the result of each constexpr call
that's been evaluated.  This table now gets cleared during GC though which in
real programs triggers frequently enough that its size won't be a problem.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]