This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
A recent patch increased GCC's memory consumption in some cases!
- From: gcctest at suse dot de
- To: jh at suse dot cz, gcc-regression at gcc dot gnu dot org
- Date: Thu, 01 May 2008 21:33:40 +0000
- Subject: A recent patch increased GCC's memory consumption in some cases!
Hi,
I am a friendly script caring about memory consumption in GCC. Please
contact jh@suse.cz if something is going wrong.
Comparing memory consumption on compilation of combine.i, insn-attrtab.i,
and generate-3.4.ii I got:
comparing empty function compilation at -O0 level:
Peak amount of GGC memory still allocated after garbage collecting increased from 998k to 999k, overall 0.10%
Overall memory needed: 8151k
Peak memory use before GGC: 1103k
Peak memory use after GGC: 998k -> 999k
Maximum of released memory in single GGC run: 129k
Garbage: 239k -> 239k
Leak: 956k -> 956k
Overhead: 80k -> 80k
GGC runs: 2
Testing has produced no results
Testing has produced no results
comparing empty function compilation at -O0 -g level:
Overall memory needed: 8167k
Peak memory use before GGC: 1130k -> 1131k
Peak memory use after GGC: 1033k
Maximum of released memory in single GGC run: 127k -> 128k
Garbage: 241k -> 242k
Leak: 989k -> 989k
Overhead: 85k -> 85k
GGC runs: 4
Testing has produced no results
Testing has produced no results
comparing empty function compilation at -O1 level:
Peak amount of GGC memory still allocated after garbage collecting increased from 998k to 999k, overall 0.10%
Overall memory needed: 8203k
Peak memory use before GGC: 1103k
Peak memory use after GGC: 998k -> 999k
Maximum of released memory in single GGC run: 131k
Garbage: 241k -> 241k
Leak: 956k -> 957k
Overhead: 81k -> 81k
GGC runs: 2
Pre-IPA-Garbage: 229k -> 229k
Pre-IPA-Leak: 958k -> 959k
Pre-IPA-Overhead: 79k -> 79k
Post-IPA-Garbage: 229k -> 229k
Post-IPA-Leak: 958k -> 959k
Post-IPA-Overhead: 79k -> 79k
comparing empty function compilation at -O2 level:
Overall memory needed: 8223k
Peak memory use before GGC: 1103k -> 1104k
Peak memory use after GGC: 999k
Maximum of released memory in single GGC run: 134k
Garbage: 245k -> 245k
Leak: 957k -> 958k
Overhead: 82k -> 82k
GGC runs: 2
Pre-IPA-Garbage: 229k -> 229k
Pre-IPA-Leak: 959k -> 960k
Pre-IPA-Overhead: 79k -> 79k
Post-IPA-Garbage: 229k -> 229k
Post-IPA-Leak: 959k -> 960k
Post-IPA-Overhead: 79k -> 79k
comparing empty function compilation at -O3 level:
Overall memory needed: 8223k
Peak memory use before GGC: 1103k -> 1104k
Peak memory use after GGC: 999k
Maximum of released memory in single GGC run: 134k
Garbage: 245k -> 245k
Leak: 957k -> 958k
Overhead: 82k -> 82k
GGC runs: 2
Pre-IPA-Garbage: 229k -> 229k
Pre-IPA-Leak: 959k -> 960k
Pre-IPA-Overhead: 79k -> 79k
Post-IPA-Garbage: 229k -> 229k
Post-IPA-Leak: 959k -> 960k
Post-IPA-Overhead: 79k -> 79k
comparing combine.c compilation at -O0 level:
Overall memory needed: 22611k
Peak memory use before GGC: 7767k -> 7771k
Peak memory use after GGC: 7146k -> 7148k
Maximum of released memory in single GGC run: 1545k
Garbage: 37783k -> 37781k
Leak: 5477k -> 5479k
Overhead: 4618k -> 4618k
GGC runs: 371
Testing has produced no results
Testing has produced no results
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 24687k -> 24699k
Peak memory use before GGC: 9704k -> 9706k
Peak memory use after GGC: 9042k -> 9044k
Maximum of released memory in single GGC run: 1831k
Garbage: 38135k -> 38152k
Leak: 8671k -> 8673k
Overhead: 5414k -> 5414k
GGC runs: 340 -> 341
Testing has produced no results
Testing has produced no results
comparing combine.c compilation at -O1 level:
Overall memory needed: 32831k
Peak memory use before GGC: 16257k -> 16259k
Peak memory use after GGC: 16094k -> 16096k
Maximum of released memory in single GGC run: 1375k -> 1378k
Garbage: 51449k -> 51489k
Leak: 5646k -> 5614k
Overhead: 5808k -> 5809k
GGC runs: 440 -> 441
Pre-IPA-Garbage: 13898k -> 13899k
Pre-IPA-Leak: 17088k -> 17090k
Pre-IPA-Overhead: 2132k -> 2132k
Post-IPA-Garbage: 13898k -> 13899k
Post-IPA-Leak: 17088k -> 17090k
Post-IPA-Overhead: 2132k -> 2132k
comparing combine.c compilation at -O2 level:
Overall memory needed: 34603k
Peak memory use before GGC: 16358k -> 16359k
Peak memory use after GGC: 16187k -> 16189k
Maximum of released memory in single GGC run: 1304k -> 1307k
Garbage: 71650k -> 71685k
Leak: 5975k -> 5943k
Overhead: 8157k -> 8157k
GGC runs: 509 -> 510
Pre-IPA-Garbage: 14050k -> 14051k
Pre-IPA-Leak: 17152k -> 17154k
Pre-IPA-Overhead: 2146k -> 2147k
Post-IPA-Garbage: 14050k -> 14051k
Post-IPA-Leak: 17152k -> 17154k
Post-IPA-Overhead: 2146k -> 2147k
comparing combine.c compilation at -O3 level:
Overall memory needed: 38771k -> 38767k
Peak memory use before GGC: 16439k -> 16440k
Peak memory use after GGC: 16203k -> 16204k
Maximum of released memory in single GGC run: 2440k
Garbage: 91486k -> 91515k
Leak: 6025k -> 6004k
Overhead: 10694k -> 10695k
GGC runs: 545 -> 546
Pre-IPA-Garbage: 14051k -> 14053k
Pre-IPA-Leak: 17164k -> 17165k
Pre-IPA-Overhead: 2148k -> 2148k
Post-IPA-Garbage: 14051k -> 14053k
Post-IPA-Leak: 17164k -> 17165k
Post-IPA-Overhead: 2148k -> 2148k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 137419k -> 137431k
Peak memory use before GGC: 56955k -> 56956k
Peak memory use after GGC: 31381k -> 31382k
Maximum of released memory in single GGC run: 33223k
Garbage: 128392k -> 128386k
Leak: 8353k -> 8354k
Overhead: 14292k -> 14292k
GGC runs: 292 -> 293
Testing has produced no results
Testing has produced no results
comparing insn-attrtab.c compilation at -O0 -g level:
Overall memory needed: 138711k -> 138719k
Peak memory use before GGC: 58157k -> 58158k
Peak memory use after GGC: 32582k -> 32583k
Maximum of released memory in single GGC run: 33224k
Garbage: 128898k -> 128900k
Leak: 9930k -> 9932k
Overhead: 14732k -> 14732k
GGC runs: 287 -> 289
Testing has produced no results
Testing has produced no results
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 142851k -> 142891k
Peak memory use before GGC: 56180k -> 56178k
Peak memory use after GGC: 49959k -> 49957k
Maximum of released memory in single GGC run: 23959k
Garbage: 205088k -> 205099k
Leak: 9259k -> 9249k
Overhead: 24743k -> 24744k
GGC runs: 315 -> 316
Pre-IPA-Garbage: 50365k -> 50366k
Pre-IPA-Leak: 49649k -> 49651k
Pre-IPA-Overhead: 7555k -> 7555k
Post-IPA-Garbage: 50365k -> 50366k
Post-IPA-Leak: 49649k -> 49651k
Post-IPA-Overhead: 7555k -> 7555k
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 184103k -> 184099k
Peak memory use before GGC: 56789k -> 56787k
Peak memory use after GGC: 51560k -> 51558k
Maximum of released memory in single GGC run: 22852k
Garbage: 246589k -> 246601k
Leak: 10336k -> 10327k
Overhead: 30638k -> 30638k
GGC runs: 345 -> 346
Pre-IPA-Garbage: 50437k -> 50438k
Pre-IPA-Leak: 49653k -> 49654k
Pre-IPA-Overhead: 7562k -> 7563k
Post-IPA-Garbage: 50437k -> 50438k
Post-IPA-Leak: 49653k -> 49654k
Post-IPA-Overhead: 7562k -> 7563k
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 191479k -> 191319k
Peak memory use before GGC: 69205k -> 69203k
Peak memory use after GGC: 65013k -> 65011k
Maximum of released memory in single GGC run: 24861k -> 24862k
Garbage: 273807k -> 273819k
Leak: 10371k -> 10361k
Overhead: 32553k -> 32554k
GGC runs: 344 -> 345
Pre-IPA-Garbage: 50437k -> 50438k
Pre-IPA-Leak: 49653k -> 49654k
Pre-IPA-Overhead: 7562k -> 7563k
Post-IPA-Garbage: 50437k -> 50438k
Post-IPA-Leak: 49653k -> 49654k
Post-IPA-Overhead: 7562k -> 7563k
comparing Gerald's testcase PR8361 compilation at -O0 level:
Peak amount of GGC memory allocated before garbage collecting increased from 80187k to 80332k, overall 0.18%
Peak amount of GGC memory still allocated after garbage collecting increased from 79393k to 79536k, overall 0.18%
Overall memory needed: 143892k -> 144060k
Peak memory use before GGC: 80187k -> 80332k
Peak memory use after GGC: 79393k -> 79536k
Maximum of released memory in single GGC run: 14748k -> 14817k
Garbage: 197190k -> 197305k
Leak: 47135k -> 47159k
Overhead: 24133k -> 24144k
GGC runs: 417 -> 418
Amount of memory referenced pre-ipa increased from 69015k to 69091k, overall 0.11%
Pre-IPA-Garbage: 107866k -> 107934k
Pre-IPA-Leak: 69015k -> 69091k
Pre-IPA-Overhead: 12071k -> 12082k
Amount of memory referenced post-ipa increased from 69015k to 69091k, overall 0.11%
Post-IPA-Garbage: 107866k -> 107934k
Post-IPA-Leak: 69015k -> 69091k
Post-IPA-Overhead: 12071k -> 12082k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Peak amount of GGC memory allocated before garbage collecting increased from 92748k to 92915k, overall 0.18%
Peak amount of GGC memory still allocated after garbage collecting increased from 91829k to 91995k, overall 0.18%
Overall memory needed: 165976k -> 166172k
Peak memory use before GGC: 92748k -> 92915k
Peak memory use after GGC: 91829k -> 91995k
Maximum of released memory in single GGC run: 15427k -> 15518k
Garbage: 202829k -> 202955k
Leak: 71524k -> 71548k
Overhead: 30492k -> 30503k
GGC runs: 389 -> 388
Pre-IPA-Garbage: 108510k -> 108577k
Pre-IPA-Leak: 83748k -> 83824k
Pre-IPA-Overhead: 15375k -> 15386k
Post-IPA-Garbage: 108510k -> 108577k
Post-IPA-Leak: 83748k -> 83824k
Post-IPA-Overhead: 15375k -> 15386k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Peak amount of GGC memory allocated before garbage collecting run decreased from 83293k to 79872k, overall -4.28%
Peak amount of GGC memory still allocated after garbage collecting decreased from 82467k to 79079k, overall -4.28%
Amount of produced GGC garbage increased from 285576k to 287583k, overall 0.70%
Amount of memory still referenced at the end of compilation increased from 46225k to 46293k, overall 0.15%
Overall memory needed: 121719k -> 119143k
Peak memory use before GGC: 83293k -> 79872k
Peak memory use after GGC: 82467k -> 79079k
Maximum of released memory in single GGC run: 14389k -> 14455k
Garbage: 285576k -> 287583k
Leak: 46225k -> 46293k
Overhead: 29592k -> 29818k
GGC runs: 513 -> 517
Amount of memory referenced pre-ipa decreased from 87119k to 83607k, overall -4.20%
Pre-IPA-Garbage: 154527k -> 151102k
Pre-IPA-Leak: 87119k -> 83607k
Pre-IPA-Overhead: 18038k -> 17520k
Amount of memory referenced post-ipa decreased from 87119k to 83607k, overall -4.20%
Post-IPA-Garbage: 154527k -> 151102k
Post-IPA-Leak: 87119k -> 83607k
Post-IPA-Overhead: 18038k -> 17520k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Peak amount of GGC memory allocated before garbage collecting run decreased from 83484k to 79798k, overall -4.62%
Peak amount of GGC memory still allocated after garbage collecting decreased from 82614k to 78977k, overall -4.61%
Amount of produced GGC garbage increased from 354703k to 356329k, overall 0.46%
Amount of memory still referenced at the end of compilation increased from 47337k to 47697k, overall 0.76%
Overall memory needed: 124311k -> 121271k
Peak memory use before GGC: 83484k -> 79798k
Peak memory use after GGC: 82614k -> 78977k
Maximum of released memory in single GGC run: 14390k -> 14457k
Garbage: 354703k -> 356329k
Leak: 47337k -> 47697k
Overhead: 36871k -> 37070k
GGC runs: 596
Amount of memory referenced pre-ipa decreased from 87262k to 83471k, overall -4.54%
Pre-IPA-Garbage: 157065k -> 152722k
Pre-IPA-Leak: 87262k -> 83471k
Pre-IPA-Overhead: 18320k -> 17688k
Amount of memory referenced post-ipa decreased from 87262k to 83471k, overall -4.54%
Post-IPA-Garbage: 157065k -> 152722k
Post-IPA-Leak: 87262k -> 83471k
Post-IPA-Overhead: 18320k -> 17688k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Peak amount of GGC memory allocated before garbage collecting run decreased from 84754k to 81053k, overall -4.57%
Peak amount of GGC memory still allocated after garbage collecting decreased from 83887k to 80233k, overall -4.55%
Amount of produced GGC garbage increased from 381039k to 383317k, overall 0.60%
Amount of memory still referenced at the end of compilation increased from 47908k to 48121k, overall 0.45%
Overall memory needed: 127227k -> 124379k
Peak memory use before GGC: 84754k -> 81053k
Peak memory use after GGC: 83887k -> 80233k
Maximum of released memory in single GGC run: 14713k -> 14780k
Garbage: 381039k -> 383317k
Leak: 47908k -> 48121k
Overhead: 39187k -> 39408k
GGC runs: 612 -> 618
Amount of memory referenced pre-ipa decreased from 87545k to 83756k, overall -4.52%
Pre-IPA-Garbage: 159744k -> 155353k
Pre-IPA-Leak: 87545k -> 83756k
Pre-IPA-Overhead: 18574k -> 17939k
Amount of memory referenced post-ipa decreased from 87545k to 83756k, overall -4.52%
Post-IPA-Garbage: 159744k -> 155353k
Post-IPA-Leak: 87545k -> 83756k
Post-IPA-Overhead: 18574k -> 17939k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 380336k -> 380347k
Peak memory use before GGC: 100955k -> 100956k
Peak memory use after GGC: 56609k
Maximum of released memory in single GGC run: 50582k -> 50583k
Garbage: 178510k -> 178454k
Leak: 6101k -> 6101k
Overhead: 30540k -> 30540k
GGC runs: 107
Testing has produced no results
Testing has produced no results
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Overall memory needed: 381192k -> 381199k
Peak memory use before GGC: 101648k -> 101649k
Peak memory use after GGC: 57302k
Maximum of released memory in single GGC run: 50582k -> 50583k
Garbage: 178569k
Leak: 8130k -> 8130k
Overhead: 31123k -> 31123k
GGC runs: 111 -> 110
Testing has produced no results
Testing has produced no results
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Overall memory needed: 391951k -> 393123k
Peak memory use before GGC: 76377k -> 76378k
Peak memory use after GGC: 70367k -> 70368k
Maximum of released memory in single GGC run: 35019k -> 35020k
Garbage: 238055k -> 238055k
Leak: 13675k -> 13675k
Overhead: 32176k -> 32176k
GGC runs: 104 -> 105
Pre-IPA-Garbage: 47314k -> 47314k
Pre-IPA-Leak: 67574k -> 67574k
Pre-IPA-Overhead: 7555k -> 7555k
Post-IPA-Garbage: 47314k -> 47314k
Post-IPA-Leak: 67574k -> 67574k
Post-IPA-Overhead: 7555k -> 7555k
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 309787k -> 309507k
Peak memory use before GGC: 76377k -> 76378k
Peak memory use after GGC: 70367k -> 70368k
Maximum of released memory in single GGC run: 31603k -> 31602k
Garbage: 252494k -> 252498k
Leak: 13848k -> 13849k
Overhead: 35290k -> 35290k
GGC runs: 117 -> 118
Pre-IPA-Garbage: 99940k -> 99940k
Pre-IPA-Leak: 77332k -> 77333k
Pre-IPA-Overhead: 12228k -> 12228k
Post-IPA-Garbage: 99940k -> 99940k
Post-IPA-Leak: 77332k -> 77333k
Post-IPA-Overhead: 12228k -> 12228k
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 1199819k -> 1199807k
Peak memory use before GGC: 138639k -> 138640k
Peak memory use after GGC: 127949k -> 127950k
Maximum of released memory in single GGC run: 59910k
Garbage: 374922k -> 374918k
Leak: 24122k -> 24123k
Overhead: 49943k
GGC runs: 103 -> 104
Pre-IPA-Garbage: 99940k -> 99940k
Pre-IPA-Leak: 77332k -> 77333k
Pre-IPA-Overhead: 12228k -> 12228k
Post-IPA-Garbage: 99940k -> 99940k
Post-IPA-Leak: 77332k -> 77333k
Post-IPA-Overhead: 12228k -> 12228k
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2008-04-30 23:21:15.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2008-05-01 18:20:08.000000000 +0000
@@ -1,3 +1,86 @@
+2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_builtin_type): Replace
+ DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
+ (bdesc_args): Updated.
+ (ix86_init_mmx_sse_builtins): Likewise.
+ (ix86_expand_args_builtin): Likewise.
+
+ * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
+ with __v1di.
+
+ * doc/extend.texi: Correct __builtin_ia32_palignr.
+
+2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/36095
+ * config/i386/i386.c (bdesc_crc32): Removed.
+ (ix86_expand_crc32): Likewise.
+ (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
+ V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
+ V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
+ UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
+ UINT_FTYPE_UINT_UCHAR.
+ (bdesc_args): Updated. Add crc32 builtins.
+ (ix86_init_mmx_sse_builtins): Updated.
+ (ix86_expand_args_builtin): Updated to support subreg.
+
+ * doc/extend.texi: Correct __builtin_ia32_crc32di.
+
+2008-05-01 Jan Hubicka <jh@suse.cz>
+
+ * tree-pass.h (opt_pass): Add IPA_PASS.
+ (varpool_node, cgraph_node): Forward declare.
+ (ipa_opt_pass): Define.
+ (pass_ipa_inline): Turn into ipa_opt_pass.
+ (pass_apply_inline): Remove.
+ * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
+ (apply_inline): Turn into ....
+ (inline_transform): ... this one.
+ (inline_generate_summary): New function.
+ (pass_apply_inline): Remove.
+ * function.h (ipa_opt_pass): Forward declare structure; typedef;
+ vector.
+ (struct function): Add ipa_transforms_to_apply.
+ * passes.c (register_one_dump_file): Work on IPA_PASS.
+ (init_optimization_passes): Remove pass_inline_parameters and
+ pass_apply_inline.
+ (pass_init_dump_file, pass_fini_dump_file): Break out from ....
+ (execute_one_pass) ... here; apply transforms when possible.
+ (add_ipa_transform_pass, execute_ipa_summary_asses,
+ execute_one_ipa_transform_pass): New.
+ (execute_ipa_pass_list): Update for IPA_PASS type.
+
+2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_builtin_type): Add
+ V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
+ V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
+ (bdesc_args): Add SSE4a builtins.
+ (ix86_init_mmx_sse_builtins): Updated.
+ (ix86_expand_args_builtin): Likewise.
+ (ix86_expand_builtin): Likewise.
+
+2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_builtin_type): Add
+ V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
+ V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
+ V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
+ V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
+ V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
+ V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
+ V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
+ V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
+ and DI_FTYPE_DI_DI_INT.
+ (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
+ (ix86_init_mmx_sse_builtins): Updated.
+ (ix86_expand_args_builtin): Likewise.
+ (ix86_expand_builtin): Likewise.
+ (ix86_expand_binop_imm_builtin): Removed.
+
+ * doc/extend.texi: Correct __builtin_ia32_palignr128.
+
2008-04-30 Richard Guenther <rguenther@suse.de>
PR tree-optimization/32921
The results can be reproduced by building a compiler with
--enable-gather-detailed-mem-stats targetting x86-64
and compiling preprocessed combine.c or testcase from PR8632 with:
-fmem-report --param=ggc-min-heapsize=1024 --param=ggc-min-expand=1 -Ox -Q
The memory consumption summary appears in the dump after detailed listing
of the places they are allocated in. Peak memory consumption is actually
computed by looking for maximal value in {GC XXXX -> YYYY} report.
Your testing script.