This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Memory usage of 4.2 versus 4.3 (at branchpoints)
- From: Jan Hubicka <jh at suse dot cz>
- To: gcc at gcc dot gnu dot org
- Date: Sat, 21 Oct 2006 16:58:23 +0200
- Subject: Memory usage of 4.2 versus 4.3 (at branchpoints)
Hi,
to give some perspective to the discussion on memory usage, I generated
comparsion of 4.2 branchpoint to 4.3 branchpoint from logs of our memory
tester. I would say it is quite pleasing to see that 4.3 is not really
regression relative 4.2 in most tests like it was custom in previous
releases, but still we ought to do a lot better ;)
There is posssibly interesting 35% regression at -O1 combine.c...
Honza
comparing combine.c compilation at -O0 level:
Peak amount of GGC memory allocated before garbage collecting run decreased from 9595k to 8929k, overall -7.46%
Peak amount of GGC memory still allocated after garbage collecting decreased from 8942k to 8558k, overall -4.49%
Amount of produced GGC garbage decreased from 40099k to 34878k, overall -14.97%
Amount of memory still referenced at the end of compilation decreased from 6705k to 6073k, overall -10.41%
Overall memory needed: 24905k -> 24797k
Peak memory use before GGC: 9595k -> 8929k
Peak memory use after GGC: 8942k -> 8558k
Maximum of released memory in single GGC run: 2737k -> 2576k
Garbage: 40099k -> 34878k
Leak: 6705k -> 6073k
Overhead: 5788k -> 4715k
GGC runs: 317 -> 294
comparing combine.c compilation at -O1 level:
Overall memory allocated via mmap and sbrk increased from 26820k to 36237k, overall 35.11%
Amount of produced GGC garbage decreased from 60618k to 55748k, overall -8.74%
Amount of memory still referenced at the end of compilation decreased from 6888k to 6151k, overall -11.98%
Overall memory needed: 26820k -> 36237k
Peak memory use before GGC: 17364k -> 16999k
Peak memory use after GGC: 17180k -> 16830k
Maximum of released memory in single GGC run: 2372k -> 2342k
Garbage: 60618k -> 55748k
Leak: 6888k -> 6151k
Overhead: 7578k -> 6045k
GGC runs: 387 -> 369
comparing combine.c compilation at -O2 level:
Amount of memory still referenced at the end of compilation decreased from 6973k to 6252k, overall -11.53%
Overall memory needed: 26820k -> 26496k
Peak memory use before GGC: 17367k -> 16999k
Peak memory use after GGC: 17180k -> 16830k
Maximum of released memory in single GGC run: 2452k -> 2884k
Garbage: 77388k -> 76521k
Leak: 6973k -> 6252k
Overhead: 10022k -> 8785k
GGC runs: 456 -> 443
comparing combine.c compilation at -O3 level:
Ovarall memory allocated via mmap and sbrk decreased from 26820k to 25596k, overall -4.78%
Amount of memory still referenced at the end of compilation decreased from 7030k to 6317k, overall -11.28%
Overall memory needed: 26820k -> 25596k
Peak memory use before GGC: 18365k -> 17988k
Peak memory use after GGC: 17995k -> 17536k
Maximum of released memory in single GGC run: 3510k -> 4130k
Garbage: 107793k -> 107354k
Leak: 7030k -> 6317k
Overhead: 13563k -> 12408k
GGC runs: 509 -> 490
comparing insn-attrtab.c compilation at -O0 level:
Overall memory allocated via mmap and sbrk increased from 80924k to 83700k, overall 3.43%
Amount of produced GGC garbage decreased from 146623k to 125964k, overall -16.40%
Amount of memory still referenced at the end of compilation decreased from 9856k to 9117k, overall -8.11%
Overall memory needed: 80924k -> 83700k
Peak memory use before GGC: 69469k -> 68247k
Peak memory use after GGC: 45007k -> 43913k
Maximum of released memory in single GGC run: 36247k -> 35708k
Garbage: 146623k -> 125964k
Leak: 9856k -> 9117k
Overhead: 19791k -> 16830k
GGC runs: 252 -> 231
comparing insn-attrtab.c compilation at -O1 level:
Overall memory allocated via mmap and sbrk increased from 111696k to 118444k, overall 6.04%
Peak amount of GGC memory allocated before garbage collecting increased from 94037k to 94551k, overall 0.55%
Peak amount of GGC memory still allocated after garbage collectin increased from 83553k to 90403k, overall 8.20%
Amount of memory still referenced at the end of compilation decreased from 10072k to 8977k, overall -12.20%
Overall memory needed: 111696k -> 118444k
Peak memory use before GGC: 94037k -> 94551k
Peak memory use after GGC: 83553k -> 90403k
Maximum of released memory in single GGC run: 32589k -> 31807k
Garbage: 289765k -> 289427k
Leak: 10072k -> 8977k
Overhead: 36663k -> 29408k
GGC runs: 245 -> 240
comparing insn-attrtab.c compilation at -O2 level:
Ovarall memory allocated via mmap and sbrk decreased from 127120k to 114404k, overall -11.11%
Peak amount of GGC memory allocated before garbage collecting run decreased from 113347k to 95237k, overall -19.02%
Peak amount of GGC memory still allocated after garbage collectin increased from 83466k to 90625k, overall 8.58%
Amount of produced GGC garbage decreased from 372181k to 328157k, overall -13.42%
Amount of memory still referenced at the end of compilation decreased from 10176k to 8982k, overall -13.30%
Overall memory needed: 127120k -> 114404k
Peak memory use before GGC: 113347k -> 95237k
Peak memory use after GGC: 83466k -> 90625k
Maximum of released memory in single GGC run: 32177k -> 30386k
Garbage: 372181k -> 328157k
Leak: 10176k -> 8982k
Overhead: 48194k -> 36436k
GGC runs: 273 -> 269
comparing insn-attrtab.c compilation at -O3 level:
Ovarall memory allocated via mmap and sbrk decreased from 127188k to 114436k, overall -11.14%
Peak amount of GGC memory allocated before garbage collecting run decreased from 113377k to 95263k, overall -19.01%
Peak amount of GGC memory still allocated after garbage collectin increased from 83496k to 90651k, overall 8.57%
Amount of produced GGC garbage decreased from 372762k to 328738k, overall -13.39%
Amount of memory still referenced at the end of compilation decreased from 10181k to 8984k, overall -13.32%
Overall memory needed: 127188k -> 114436k
Peak memory use before GGC: 113377k -> 95263k
Peak memory use after GGC: 83496k -> 90651k
Maximum of released memory in single GGC run: 32501k -> 30582k
Garbage: 372762k -> 328738k
Leak: 10181k -> 8984k
Overhead: 48348k -> 36612k
GGC runs: 276 -> 271
comparing Gerald's testcase PR8361 compilation at -O0 level:
Amount of produced GGC garbage decreased from 223559k to 200877k, overall -11.29%
Amount of memory still referenced at the end of compilation decreased from 49198k to 47326k, overall -3.96%
Overall memory needed: 118380k -> 116568k
Peak memory use before GGC: 95138k -> 92731k
Peak memory use after GGC: 94190k -> 91812k
Maximum of released memory in single GGC run: 20460k -> 19778k
Garbage: 223559k -> 200877k
Leak: 49198k -> 47326k
Overhead: 36725k -> 20503k
GGC runs: 369 -> 399
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory allocated via mmap and sbrk increased from 105796k to 115728k, overall 9.39%
Peak amount of GGC memory allocated before garbage collecting increased from 95267k to 97572k, overall 2.42%
Peak amount of GGC memory still allocated after garbage collectin increased from 93193k to 95362k, overall 2.33%
Amount of produced GGC garbage decreased from 567631k to 436946k, overall -29.91%
Amount of memory still referenced at the end of compilation decreased from 55030k to 49793k, overall -10.52%
Overall memory needed: 105796k -> 115728k
Peak memory use before GGC: 95267k -> 97572k
Peak memory use after GGC: 93193k -> 95362k
Maximum of released memory in single GGC run: 20343k -> 18425k
Garbage: 567631k -> 436946k
Leak: 55030k -> 49793k
Overhead: 67667k -> 32048k
GGC runs: 518 -> 546
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory allocated via mmap and sbrk increased from 106304k to 115708k, overall 8.85%
Peak amount of GGC memory allocated before garbage collecting increased from 95268k to 97573k, overall 2.42%
Peak amount of GGC memory still allocated after garbage collectin increased from 93193k to 95363k, overall 2.33%
Amount of produced GGC garbage decreased from 653958k to 505402k, overall -29.39%
Amount of memory still referenced at the end of compilation decreased from 55807k to 50510k, overall -10.49%
Overall memory needed: 106304k -> 115708k
Peak memory use before GGC: 95268k -> 97573k
Peak memory use after GGC: 93193k -> 95363k
Maximum of released memory in single GGC run: 20344k -> 18424k
Garbage: 653958k -> 505402k
Leak: 55807k -> 50510k
Overhead: 79247k -> 40543k
GGC runs: 585 -> 616
Comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory allocated via mmap and sbrk increased from 108896k to 115648k, overall 6.20%
Peak amount of GGC memory allocated before garbage collecting increased from 96736k to 97616k, overall 0.91%
Peak amount of GGC memory still allocated after garbage collectin increased from 94271k to 96649k, overall 2.52%
Amount of produced GGC garbage decreased from 708770k to 523573k, overall -35.37%
Amount of memory still referenced at the end of compilation decreased from 56981k to 50058k, overall -13.83%
Overall memory needed: 108896k -> 115648k
Peak memory use before GGC: 96736k -> 97616k
Peak memory use after GGC: 94271k -> 96649k
Maximum of released memory in single GGC run: 20840k -> 18845k
Garbage: 708770k -> 523573k
Leak: 56981k -> 50058k
Overhead: 84217k -> 41001k
GGC runs: 597 -> 624