This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/70452] [5/6 Regression] Regression in C++ parsing performance between 4.9.3 and 5.3.1
- From: "ppalka at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 07 Apr 2016 17:29:21 +0000
- Subject: [Bug c++/70452] [5/6 Regression] Regression in C++ parsing performance between 4.9.3 and 5.3.1
- Auto-submitted: auto-generated
- References: <bug-70452-4 at http dot gcc dot gnu dot org/bugzilla/>
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.