This is the mail archive of the gcc@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]

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


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